2013-06-30

UI 优化

在Android中,最常用LinearLayout表示UI的布局。比起LinearLayout,在资源利用上,RelativeLayout会占用更少的资源而达到相同的效果。针对RelativeLayout有一点需要注意,因为它内部是通过多个View之间的关系而确定的布局,那么当其中某一个View因为某些需要调用GONE来完全隐藏掉后,会影响与其关联的Views,属性alignWithParentIfMissing用于解决类似问题。

简单或复杂的问题都需要时常考虑如何优化资源的分配。当我们面对Android UI优化时,有必要继续考虑资源复用。定义Android布局文件时,有4个比较特别的标签是非常重要:<viewStub/>, <requestFocus/>, <merge/>和<include/>,其中3个与资源复用有关。

1. <viewStub/> 直观效果类似于View的不可见性,但其所包裹的View在默认状态下不会占用任何内存空间。viewStub通过include从外部导入View元素。用法:通过属性android:layout来设定内容。

2. <include/> 用于直接加载xml,是复用UI资源的常用标签。用法:通过属性layout来设定加载的xml。

3. <requestFocus/> 用于设定焦点。用法:将<requestFocus/>放于View标签中。

4. <merge/> 目的:删减多余或额外的层级。

查看当前UI结构:运行android sdk/tools/hierarchyviewer.bat

如果你创建的Layout不是把FrameLayout当作根节点,就不能使用<merge/>来优化。

当使用include或viewStub从外部导入xml结构时,可以将被导入的xml用merge作为根节点,这样当被嵌入后可以很好地融合,不会出现冗余的节点。

<merge/>只可以作为xml-layout的根节点。扩充的xml-layout是merge作为根节点时,需要将被导入的xml-layout置于viewGroup中,同时需要设置attachToRoot为true。

图片优化

在Android中,BitmapFactory的使用。

在开发过程中尽可能降低对高质量图片的使用以提高运行效率。

同一张图片如何在不同大小屏幕合适地显示出来?如果图片不够满屏,就对图片进行放大,相反就进行缩小。

将多张图片集成到一张图片上。减少图片的颜色数。

更多相关文章

  1. Android的SoundPool类使用与利弊
  2. 使用afinal 中的finalhttp和finalbitmap访问网络资源+finalActiv
  3. Android(安卓)语言资源库的添加
  4. Android通过ant脚本打包带Library project的方法
  5. Android(安卓)中自定义 Menu 资源
  6. Android(安卓)Glide v4使用(基础篇)
  7. Android界面编程之实现改变图片透明度并提供细节查看
  8. Android——ImageSpan图片和文字实现垂直居中
  9. Android:widget 用法总结

随机推荐

  1. WebService Restful方式 Post请求Java无
  2. 将SVG与sass中的div的中心对齐
  3. 如何更改多个选定html值的名称?
  4. 【css】a标签的用法
  5. 用esp开发demo流程
  6. CSS Transition div容器高度从100%到200%
  7. 利用js、jQuery和css实现环形进度条组件
  8. Qt 5.4正式发布!引入WP,支持HTML5混合开发
  9. PDA调用接口 提示:客户端发现响应内容的类
  10. 输入焦点警报,没有类别或ID,在Div内