Android开发优化之——对界面UI的优化(2)

移动开发 Android
在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。

在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候,可以通过<include /> 标签来重用layout的代码。

常见的,有的应用在最上方会有一个标题栏。类似下图所示。

[[85727]]

图 标题栏的示例

 

如果项目中大部分Activity的布局都包含这样的标题栏,就可以把标题栏的布局单独写成一个xml文件。

  1. <RelativeLayout 
  2.  
  3.     android:layout_width="fill_parent" 
  4.  
  5.     android:layout_height="wrap_content" 
  6.  
  7.     android:gravity="center" 
  8.  
  9.     android:background="@drawable/navigator_bar_bg" 
  10.  
  11.     xmlns:android="http://schemas.android.com/apk/res/android"
  12.  
  13.     <TextView 
  14.  
  15.         android:id="@android:id/title" 
  16.  
  17.         android:layout_width="fill_parent" 
  18.  
  19.         android:layout_height="wrap_content" 
  20.  
  21.         android:layout_centerVertical="true" 
  22.  
  23.         android:gravity="center" 
  24.  
  25.         android:hint="title" 
  26.  
  27.         android:textAppearance="?android:attr/textAppearanceMedium" /> 
  28.  
  29.     <ImageView 
  30.  
  31.         android:id="@android:id/closeButton" 
  32.  
  33.         android:layout_width="wrap_content" 
  34.  
  35.         android:layout_height="wrap_content" 
  36.  
  37.         android:layout_alignParentRight="true" 
  38.  
  39.         android:src="@drawable/close" /> 
  40.  
  41. </RelativeLayout> 
  42.   

 

我们将上面的xml文件命名为“navigator_bar.xml”,其它需要标题栏的Activity的xml布局文件就可以直接引用此文件了。

  1. <include layout="@layout/navigator_bar" /> 
  2.   

 

经验分享:

一般情况下,在项目的初期就能够大致确定整体UI的风格。所以早期的时候就可以做一些规划,将通用的模块先写出来。

下面是可能可以抽出的共用的布局:

1)背景。有的应用在不同的界面里会用到统一的背景。后期可能会经常修改默认背景,所以可以将背景做成一个通用模块。

2)头部的标题栏。如果应用有统一的头部标题栏,就可以抽取出来。

3)底部的导航栏。如果应用有导航栏,而且大部分的Activity的底部导航栏是相同的,就可以将导航栏写成一个通用模块。

4)ListView。大部分应用都会用到ListView展示多条数据。项目后期可能会经常调整ListView的风格,所以将ListView作为一个通用的模块比较好。

责任编辑:张叶青 来源: 技术博客
相关推荐

2013-09-16 15:33:28

Android优化界面UI

2013-09-16 15:50:04

Android优化界面UI

2013-09-16 16:56:09

AndroidBitmap内存优化

2013-02-20 14:32:37

Android开发性能

2013-09-16 16:01:23

Android开发代码

2021-07-29 14:20:34

网络优化移动互联网数据存储

2017-12-23 14:38:41

Android编程开发优化

2018-01-01 20:56:43

AndroidUIAPI

2019-12-13 10:25:08

Android性能优化启动优化

2017-01-15 15:13:37

Android性能优化优化点

2013-09-16 13:14:50

Android开发者优化

2013-09-17 10:32:08

Android性能优化数据库

2013-07-24 18:14:36

Android开发学习Android UIButton

2017-08-28 16:33:46

UI界面模式用户

2013-09-16 16:48:50

Android优化软引用

2022-06-07 15:33:51

Android优化实践

2011-06-22 17:11:18

SEO

2010-08-06 10:34:27

ODB2系统性能优化

2015-09-16 14:37:50

Android性能优化运算

2015-09-16 13:54:30

Android性能优化渲染
点赞
收藏

51CTO技术栈公众号