Android 高级UI

来源:互联网 发布:穿衣服搭配技巧软件 编辑:程序博客网 时间:2024/04/29 15:56
简介

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

详解
1、抽象布局

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

[html] view plaincopy
  1. <include layout="@layout/titlebar"/>    

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

[html] view plaincopy
  1. <merge xmlns:android="http://schemas.android.com/apk/res/android">    
  2.     
  3.     <Button    
  4.         android:layout_width="fill_parent"     
  5.         android:layout_height="wrap_content"    
  6.         android:text="@string/add"/>    
  7.     
  8.     <Button    
  9.         android:layout_width="fill_parent"     
  10.         android:layout_height="wrap_content"    
  11.         android:text="@string/delete"/>    
  12.     
  13. </merge>    
 <ViewStub />标签使用它的优点是需要时才会加载,它并不会影响UI初始化时的性能。各种不常用的布局都可以使用<ViewStub />标签,以减少内存使用量,加快渲染速度。

[html] view plaincopy
  1. <ViewStub    
  2.     android:id="@+id/stub_import"    
  3.     android:inflatedId="@+id/panel_import"    
  4.     android:layout="@layout/progress_overlay"    
  5.     android:layout_width="fill_parent"    
  6.     android:layout_height="wrap_content"    
  7.     android:layout_gravity="bottom" />    
2、Android样式和主题

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

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

定义和使用如下:

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

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" .>  
  3.     <TextView style="@style/itcast"  
  4.         ..  />  
  5. </LinearLayout>  

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

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

定义和使用如下:

[html] view plaincopy
  1. <activity android:theme="@style/wrap_content">    
[html] view plaincopy
  1. <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的生命周期如图:



0 0