首页 > 代码库 > Android 高级UI

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的生命周期如图:




Android 高级UI