Android开发教程 如何优化andriod布局

进行andriod开发的时候,我们很多时候会被andriod开发布局而烦恼,这个是由于andriod机分辨率老是变,很多分辨率尼玛还奇葩咧很,for example:960乘540,那么设计页面的时候,咱们该怎么下手呢?

其实设计android的页面和设计网页是差不多的,我们在折腾android机子的分辨率就好比折腾各种浏览器一样,其实我们应该多去看看android官网提供的android design,但是我想说的时候,目前为止,可以说,还没有一条非常完善的布局方法,只有在不断的总结中进步,让自己的内功更加深厚,才能完成android的布局。下面我们就一起来探讨下如何优化android的布局。这个纯粹是我自己的经验:

 

首先,你的新建一个项目在模拟器上运行,就是这样,你没看错,照着做就行了,我们将进行view的优化喝兼容!

然后,打开hierarchyviewer,这是一个帮助我们优化view的非常重要的工具的,接下来的大部分时间,都会借住这个工具进行讲解,这个工具沉睡在android sdk 目录 tools hierarchyviewer.bat,或者用Everything这样的搜索硬盘的工具直接找到!

最后,分析,用hierarchyviewer这样的神奇

 

 

技巧1:熟练的使用<include />标签就可以大大的减少我们日后都维护工作!

在实际开发中,我们经常会遇到一些共用的UI组件,比如带返回按钮的导航栏,如果为每一个xml文件都设置这部分布局,一是重复的工作量大,二是如果有变更,那么每一个xml文件都得修改。还好,Android为我们提供了< include />标签,顾名思义,通过它,我们可以将这些共用的组件抽取出来单独放到一个xml文件中,然后使用< include />标签导入共用布局,这样,前面提到的两个问题都解决了。例如上面提到的例子,新建一个xml布局文件作为顶部导航的共用布局。

我们就可以用<include />直接把需要这个顶部导航的布局添加到布局里面去,而且在维护的时候,只需要修改这个顶部导航的布局就OK了!是不是非常的方便呢?

技巧2:合并没必要的节点!<merge ></merge>

还记得刚刚写的那个按钮吗?

现在可以修改为:

<?xml version="1.0" encoding="utf-8"?>

<merge xmlns:android="http://schemas.android.com/apk/res/android"

 

 

    <Button

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:background="@drawable/btn_headtita"

        android:drawableLeft="@drawable/header_back"

        android:gravity="center"

        android:layout_gravity="center_vertical|center_horizontal"

        android:padding="10dp"

        android:text="@string/back"

        android:textColor="#ffffff" />

 

</merge>

 

这样又少了一个节点了!在显示上又快了那么一点点!

 

技巧3:熟读官方的API文档!

个人建议,常用的Widget的所有参数都尽量了解一遍!在阅读官方文档的时候我们发现了Button,有一个可以把图绘制在左边的参数:android:drawableLeft

案例一:做一个带箭头的返回按钮

以前常用的代码设计:

<RelativeLayout

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:gravity="center" >

 

        <Button

            android:id="@+id/button1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:background="@drawable/btn_headtita"

            android:textColor="#ffffff"

            android:text="@string/back" />

 

        <ImageView

            android:id="@+id/imageView1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignParentLeft="true"

            android:layout_centerVertical="true"

            android:src="@drawable/header_back" />

 

    </RelativeLayout>

用刚刚的那个工具来分析一下:

这样就从3N的复杂布局瞬间变成了N级布局啦!所以说熟读官方的api文档非常非常的重要!

 

技巧四:这是最后一个技巧了,尽可能的多使用RelativeLayout,不要使用绝对布局。

 

本文来自麦子学院:http://www.maiziedu.com/

 

转载于:https://my.oschina.net/u/2274356/blog/357546

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值