zoukankan      html  css  js  c++  java
  • 优化技术之Android UI优化

    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的使用。

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

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

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

  • 相关阅读:
    腾讯云环境配置之PHP5.6.3 + redis扩展 稳定版
    越狱后的ios如何用apt-get 安装各种命令
    批量 kill mysql 中运行时间长的sql
    谷歌Chrome浏览器开发者工具的基础功能
    话说好像是这样,ios下面通常用iframe来打开你的scheme地址; Android下通常用location.href来。。。 不过实际情况好像比这个复杂得多。。
    js判断移动端是否安装某款app的多种方法
    设计不错的网站
    BADIP filter
    开窗函数 函数() OVER()
    2018年1月初的一次面试题
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3163300.html
Copyright © 2011-2022 走看看