Android 高级UI

简介

在Android官网中有对UI 优化的文档,开发者有必要对它进行掌握。

详解
1、抽象布局

<include />标签能够重用布局文件

 <include layout="@layout/titlebar"/>  

<merge/>标签可以删减多余的层级,它多用于替换FrameLayout或者当一个布局包含另一个时,消除视图层次结构中多余的视图组

<merge xmlns:android="http://schemas.android.com/apk/res/android">  

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/add"/>  

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/delete"/>  

</merge>  

<ViewStub />标签使用它的优点是需要时才会加载,它并不会影响UI初始化时的性能。各种不常用的布局都可以使用<ViewStub />标签,以减少内存使用量,加快渲染速度。

<ViewStub
    android:id="@+id/stub_import"
    android:inflatedId="@+id/panel_import"
    android:layout="@layout/progress_overlay"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom" />  
2、Android样式和主题

android中的样式是用于为界面元素定义显示风格,它是一个包含一个或者多个view控件属性的集合。

Android 允许在外部样式文件中定义 Android 应用程序的 Look 和 Feel ,你可以将定义好的样式应用在不同的视图(Views)上。你可以在 XML  文件中定义样式,并将这些样式运用到不同的组件上。使用XML这种方式定义样式,你只需要配置一些通用的属性,以后如果需要修改样式,可以集中修改。 
    你可以在你 Android 项目的 /res/values 文件下创建一个 XML 文件,注意给文件的根目录必须是 <resources>。下面的例子将展示在 /res/xml目录下创建 style.xml 文件。

定义和使用如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name=“itcast”> <!-- 为样式定义一个全局唯一的名字-->
        <item name="android:textSize">18px</item> <!-- name属性为样式要用在的View控件持有的属性 -->
        <item name="android:textColor">#0000CC</item>
    </style>
</resources>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" .>
    <TextView style="@style/itcast"
        ..  />
</LinearLayout>

主题是针对应用中所有Activity或者针对某个Activity设置样式,可以通过编辑AndroidManifest.xml来完成。

主题相比单个视图而言,是应用到整个 Activity 或者 application 的样式。下面例子将自定义一个主题,该主题将继承 Android 定义好的主题。

定义和使用如下:

<activity android:theme="@style/wrap_content">  
<activity android:theme="@android:style/Theme.Dialog"> 

3、ViewFlipper

它的作用是什么呢,就是一个简单的ViewAnimator,将添加到ViewFlipper的View形成动画。但是在一个时间点只要一个View显示。当然,也可以设置让动画自动的有规律的显示。

4、Fragment框架

什么是Fragment?Fragment是一个片段,寄生于Activity的上下文中,Fragment拥有一个与它相关的视图层次结构,拥有一个与活动非常相似的生命周期。

Fragment的作用是什么?Activity有一个局限,不能将多个Activity活动界面放在屏幕上一并显示。因此创建了Fragment来弥补Activity的局限。Fragment可以像Activity一样响应Back键等类似Activity的功能。

Fragment的生命周期如图:

时间: 2024-08-28 07:59:12

Android 高级UI的相关文章

Android界面编程——Android高级UI组件(三)

Android界面编程 Android高级UI组件 2.4.1适配器组件 适配器的作用 适配器充当适配器控件和该视图数据之间的桥梁.适配器提供访问的数据项,并负责产生数据组中的每个项的视图. 常用的适配器 BaseAdapter:抽象类,具有较高的灵活性. ArrayAdapter:最为简单,智能展示一行文字. SimpleAdapter:有较好的扩充性,可以自定义出各种效果. SimpleCursorAdapter:主要用于操作数据库. 常用的适配器控制 适配器控件扩展自ViewAdapter

Android高级UI ImageView ImageButton RadioButton CheckBox ProgressBar属性和用法总结

高级UI ImageView  ImageButton  RadioButton  CheckBox  ProgressBar 1.ImageView 图片组件 src 指定要加载的图片 缩放问题 1.按着图片原始比例(不失真) 2.不按着比例(失真) ScaleType 1.fitXY   强制让图片缩放以填充整个imageview 2.fitCenter  按着比例缩放以居中显示图片 3.fitEnd     按着比例缩放以局下部显示图片 4.fitStart   按着比例缩放以居上部显示图

Android 高级UI设计笔记06:仿微信图片选择器

仿微信图片选择器: 一.项目整体分析: 1. Android加载图片的3个目标: (1)尽可能的去避免内存溢出. a. 根据图片的显示大小去压缩图片 b. 使用缓存对我们图片进行管理(LruCache) (2)用户操作UI控件必须充分的流畅. a. getView里面尽可能不去做耗时的操作(异步加载 + 回调显示) (3)用户预期显示的图片尽可能的快(图片的加载策略的选择,一般选择是LIFO). a. LIFO 2. 定义一个Imageloader完成上面1中的3个目标: Imageloader

Android 高级UI设计笔记08:Android开发者常用的7款Android UI组件(转载)

Android开发是目前最热门的移动开发技术之一,随着开发者的不断努力和Android社区的进步,Android开发技术已经日趋成熟,当然,在Android开源社区中也涌现了很多不错的开源UI项目,它们可以帮助Android开发者更方便快捷地完成想要的功能.本文是Android系列的第一篇,主要是向大家推荐一些常用的Android UI组件,它们都是开源的. 1.图表引擎 -  AChartEngine AChartEngine是一款基于Android的图表绘制引擎,它为Android开发者提供

Android 高级UI设计笔记19:PopupWindow使用详解

1. PopupWindow使用 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的. 2. PopupWindow使用的案例: (1)首先是我们弹出框的布局设计,如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.

Android 高级UI设计笔记09:Android如何实现无限滚动列表

ListView和GridView已经成为原生的Android应用实现中两个最流行的设计模式.目前,这些模式被大量的开发者使用,主要是因为他们是简单而直接的实现,同时他们提供了一个良好,整洁的用户体验. 对于ListView和GridView一个共同基本要求是:当用户向下滚动时可以动态加载数据支持无限滚动.下面教你如何在自己的应用中实现这个特性. 具体流程如下: (1)我们需要的一个主要组件是InfiniteScrollListener类,它实现了OnScrollListener接口.让我们直接

Android 高级UI设计笔记18:实现圆角图片

1. 下面我们看看微信首页,也就是聊天界面,如下: 上面的listView里的item中联系人的头像是圆角的 2. 下面分析一个Github的经典: (1)Github库地址: https://github.com/siyamed/android-shape-imageview (2)使用方法: >1. 添加依赖: 在build.gradle(Module:app)下添加: compile 'com.github.siyamed:android-shape-imageview:[email pr

Android 高级UI设计笔记12:ImageSwitcher图片切换器

1. ImageSwitcher ImageSwitcher是Android中控制图片展示效果的一个控件,如:幻灯片效果...,颇有感觉啊.做相册一绝 2. 重要方法 setImageURI(Uri uri):设置图片地址 setImageResource(int resid):设置图片资源库 setImageDrawable(Drawable drawable):绘制图片 3. 设置动画效果 imageSwitcher.setInAnimation(AnimationUtils.loadAni

Android 高级UI设计笔记07:RecyclerView 的使用(ListView的扩展)

1. 使用RecyclerView       在 Android 应用程序中列表是一个非常重要的控件,适用场合非常多,如新闻列表.应用列表.消息列表等等,但是从Android 一出生到现在并没有非常好用的列表控件,早期的 ListView 用法非常复杂,尤其是自定义列表,简直就是地狱,因为其中还涉及到很多效率优化的问题,新手很难写出高效率的基于列表应用,而且 ListView 只能垂直方向呈现内容,使用很不灵活,为了解决这个缺陷,Android 官方推出了 RecyclerView 控件,用来