《Android面试宝典》学习笔记(第二章:布局)

如何让三个按钮以水平方向分别左对齐、居中对齐和右对齐?

android:layout_gravity="left"

android:layout_gravity="center_horizonal"

android:layout_gravity="right"


如何获得组件的宽度和高度?

先调用view.measure方法测量组件的宽度和高度,再调用view.getMeasuredWidth和view.getMeasuredHeight(Layout也是view的子类)


如何让五个按钮呈梅花状排列?

http://blog.csdn.net/cjllife/article/details/8150604


如何确定view的位置坐标?

int[] location = new  int[2] ;
view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标
view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标
location [0]--->x坐标,location [1]--->y坐标


如何用Java代码控制控件属性?

先创建一个LayoutParams对象,再用LayoutParams.addRules设置属性,最后调用View.setParams方法。


TableLayout的用法?

表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。TableRow可以添加子控件,每添加一个为一列。


如何将view截图?

view.setDrawingCacheEnabled()

view.getDrawingCache()


如何将窗口的背景色设为渐变色?

getWindow().setBackgroundDrawable(gradientDrawable);


layout_weight属性是什么意思?

http://mobile.51cto.com/abased-375428.htm


padding和layout_margin属性的作用?

padding:设置view中的内容在上下左右四个方向距边缘的距离。

layout_margin:设置view的边缘距其他view或父容器的距离。


尺寸的计量单位?

px、in、mm、pt(一个点,1/72英寸)、dp、sp

整个屏幕的宽为160dp

sp适合用于设置文字大小


layout_gravity和gravity的区别?

layout_gravity指定当前view在父容器中的位置,gravity指定view中内容的位置。


如何重用布局文件?

使用<include>标签。


布局优化:

  • 尽量多使用RelativeLayout,不要使用绝对布局AbsoluteLayout;

  • 将可复用的组件抽取出来并通过< include />标签使用;

  • 使用< ViewStub />标签来加载一些不常用的布局;

  • 使用< merge />标签减少布局的嵌套层次;


你可能感兴趣的:(android,布局)