Android成长日记-Android布局优化

Android常用布局

1. LinearLayout(线性布局)

2. RelativeLayout(相对布局)

3. TableLayout(表格布局)

4. AbsoluteLayou(绝对布局)

5. FrameLayout(帧布局)

低--------------使用量------------------à高

4->3->5->1->2

Android布局原则

(1) 尽量多使用LinearLayout和RelativeLayout,不要使用AbsoluteLayout

(2) 在布局层次一样的情况下,建议使用LinearLayout代替RelativeLayout,因为LinearLayout性能要稍高一些

(3) 将可复用的组件抽出来并通过include便签使用

(4) 使用ViewStub标签来加载一些不常用的布局

(5) 使用merge便签减少布局的嵌套层次

Eg:

(一) <include/>的使用

作用:将共同的组件抽取出来单独放在一个xml文件中,然后使用include标签导入共同布局

效果:提高UI的制作和复用效率,也能保证制作的UI布局更加规整和易维护

Op:<include layout=”@layout/common_title”/>

在布局文件中引入这个相同的布局即可

(二) 使用merge合并UI布局

作用:合并UI布局,使用该标签能降低UI布局的嵌套层次

场景:1.布局根节点是FrameLayout且不需要设置background或padding等属性,可以使用merge代替

2.某布局作为子布局被其他布局include时,使用merge当做该布局的顶节点,这样再被引入时顶节点会自动被忽略

(三) 使用ViewStub惰性加载

作用:ViewStub标签同include标签一样可以用来引入一个外部布局,不同的是,ViewStub引入的布局默认不会扩张,既不会占用显示也不会占用位置,从而在解析Layout时节省cpu和内存

时间: 2024-10-21 16:45:41

Android成长日记-Android布局优化的相关文章

Android成长日记-五大布局

1. 五布局之线性布局LinearLayout 特点:它包含的子控件将以横向或竖向的方式排列 ps:android:gravity=”center|bottom”(gravity允许多级联用) Tip:注意以下例子: <Button Android:layout_weight=”2” Android:layout_height=”wrap_parent” Android:layout_width=”match_parent”/> <Button Android:layout_weight

Android成长日记-Android四大组件之Service组件的学习

1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它没有用户界面,所以绝不会到前台来.一旦Service被启动起来,它就与Activity一样.它完全具有自己的生命周期. A Service is an application component that can perform long-running operations in the back

Android成长日记-Android监听事件的方法

1. Button鼠标点击的监听事件 --setOnClickListener 2. CheckBox, ToggleButton , RadioGroup的改变事件 --setOnCheckedChangeListener Eg: 3. onPageChangeListener() ----用来监控ViewPager滑到第几页

【Android 开发技巧】布局优化利器&lt;include/&gt;和ViewStub

『原创作品,转载请注明出处. --- 孙国威』 [文章原始地址 http://blog.csdn.net/manoel/article/details/39036507] 当创建复杂的布局的时候,有时候会发现添加了很多的ViewGroup和View.随之而来的问题是View树的层次越来越深,应用也变的越来越慢,因为UI渲染是非常耗时的. 这时候就应该进行布局优化了.这里介绍两种方式,分别为<include>标签和ViewStub类. <include/> 使用<include

Android最佳性能实践(四)——布局优化技巧

在前面几篇文章当中,我们学习了如何通过合理管理内存,以及高性能编码技巧的方式来提升应用程序的性能.然而实际上界面布局也会对应用程序的性能产生比较大的影响,如果布局写得糟糕的话,那么程序加载UI的速度就会非常慢,从而造成不好的用户体验.那么本篇文章我们就来学习一下,如何通过优化布局来提供应用程序的性能.还没有看过前面前面一篇文章的朋友建议可以先去阅读 Android最佳性能实践(三)——高性能编码优化 . 重用布局文件 Android系统中已经提供了非常多好用的控件,这让我们在编写布局的时候可以很

Android成长日记-使用GridView显示多行数据

本节将实现以下效果 Ps:看起来很不错的样子吧,而且很像九宫格/se ----------------------------------------------------------------------- 下面进入正题[s1] : Step 1:新建Layout,里面创建GridView <GridView android:id="@+id/gridView" android:layout_width="wrap_content" android:la

Android成长日记-使用PagerAdapter实现页面切换

Tip:此方式可以实现页面切换 1. 创建view1.xml,view2.xml,view3.xml,main.xml 在main.xml中创建 <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="wrap_content" android:layout_height="wrap_content"> </android.

Android成长日记-使用ToggleButton实现灯的开关

案例演示 此案例实现思路:通过ToggleButton控件,ImageView控件实现 ---xml代码: <!-- textOn:true textOff:falase[s1] --> <ToggleButton android:id="@+id/toggleB utton1" android:layout_width="match_parent" android:layout_height="wrap_content" an

Android成长日记-仿跑马灯的TextView

在程序设计中有时候一行需要显示多个文字,这时候在Android中默认为分为两行显示,但是对于必须用一行显示的文字需要如何使用呢? --------------------------------------------------------------------- 以下列出解决方法: 1. 新建TextView控件 <TextView android:id="@+id/textView" android:layout_width="wrap_content"