关闭

Android UI最佳实践

202人阅读 评论(0) 收藏 举报
分类:

   

        Android 的UI也是安卓性能优化的重要一部分,首先每个APP的UI布局的都是有统一风格的,所以我们在开始开发前可以设定一些设计规范,比如字体大小和颜色,布局间距,还有Style.xml的使用可以把一些共用的设计风格抽象出来,以便以后使用,除此之外,下面记录下一些平时UI优化的点:

     

     (1) include标签的使用:将在多个布局中会用到的部分抽离出来放在一个xml文件中。然后使用include标签来导入这个布局, 抽离出来的布局文件的根节点布局就是你希望它导入其他布局文件之后出现在那个位置的布局,则可以用merge标签作为根节点, 因为抽出的布局的属性也使用于插入的布局,所以用merge会少一个图层布局。

    (2) merge标签的使用:如果根布局是FrameLayout的话,可以用merge标签,因为activity的父View也是个FrameLayout,这样就可省一层布局了

   (3)ViewStub标签的使用:有些布局内容(如进度条指示器,某个按钮点击后才会出现的额外内容等)并不需要一开始就显示在界面上,一般在开发中会将其可见性设置为invisible或者gone,在需要时候再设置为visible。虽然一开始这些内容以及没显示在界面上了,但实际上在界面初始化的时候,这些内容还是会被加载的。对于这种状况,使用ViewStub标签再适合不过了。

   (4) 使用合适的Drawable:一个包含了ImageView和TextView的LinearLayout,用一个复合的Drawable的drawableLeft等属性来替代将会更加高效。

   (5) 移除无用的叶节点:如果一个布局没有子布局、没有子控件,也没有设置背景,那么这个布局将会是不可见的,因此也是可以移除的;移除无用的父节点:如果一个布局(1)不是ScrollView、(2)不是根节点、(3)只有一个子节点、(4)没有设置背景,那么它的子节点可以直接提取到这个父节点的层级上,代替父节点,以便得到一个更加扁平和高效的布局结构。

   (6)层级过多的布局:层级过多将导致糟糕的性能。尽可能的使用RelativeLayout,灵活使用布局属性,让布局的层次减少。

   (7)避免过渡绘制,如果父控件的颜色和子控件的颜色一样,那子控件就不必设置颜色了,否则会过度渲染,消耗性能。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16997次
    • 积分:430
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:17篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论