Android移动应用开发 UI布局

  1. 定义布局的手段有几种?

答:有两种,一是在定义布局文件,而是在程序运行时动态创建View和ViewGroup对象,并将之应用为布局。

  1. android:text属性什么作用?目前我们知道哪些控件中有该属性?

答:该属性通常为控件上的文字显示信息,目前在TextView、EditView及Button中均有该属性

  1. 布局文件在哪个目录下存放?

答:在res/layout下面存放

  1. 如何将布局文件设置为某个activity的布局?

答:调用该activity的setContentView()方法,布局文件的R引用作为参数

  1. 我们自定义的控件的id在哪个文件中?引用系统资源同引用自定义资源的id有什么区别?

答:在R.java中;引用自定义资源的id,形式为android:id="@+id/my_button",引用系统资源id的形式为android:id="@android:id/empty"。

  1. 如何用id来引用布局中的对象?为什么通过findViewById这个方法得到的对象要进行类型强转?

答:在布局文件定义某个控件的id,在程序中创建一个view对象,并通过ID引用布局中的对象,如:Button myButton = (Button) findViewById(R.id.my_button);

因为findViewById方法的返回值为Object类型,所以需要进行类型的强转

  1. wrap_content、match_parent这两个值什么含义?

答:wrap_content指控件的大小适应其内的内容的大小,match_parent同父控件的大小一致。

  1. view的坐标系是怎样的?

答:每个view的形状为一个矩形,left和top表示它的位置,width和height表示它的大小;通过getLeft()和getTop()方法获取view的坐标(该坐标是相对于父控件的坐标,如下图), getWidth()和getHeight()获取宽度和高度,getRight()和getBottom()获取右下角坐标,单位均为像素。

  1. LinerLayout中的子元素是如何排列的?方向是怎么确定的?一行排不下,会不会折行?实验测试一下

答:是线性排列的,排列的方向由android:orientation的值确定,一行排不下,不会折行。

  1. 如何设置子控件的宽度或者高度相同?原理是什么?

答:可以将android:layout_height或者android:layout_width设置为”0dp”,然后android:layout_weight设置为”1”。原理就是权重的分配

  1. 盒子模型是什么?

答:

  1. android:gravity同android:layout_gravity什么区别?

答:android:gravity是本控件中的内容在本控件中的对齐模式,而android:layout_gravity是指本控件在父控件中的对齐方式。

  1. RelativeLayout是什么?它中的子控件怎么确定位置?注意这些子控件的属性可取什么值?什么是基线?

答:RelativeLayout以相对位置显示各子view的位置,每个view的位置通过相对它的兄弟view或者它的父view来进行定位。它通过指定一系列的位置属性来确定子控件的相对位置。baseline基线解释:书写英语单词时为了规范书写会设有四条线,从上至下第三条就是基线。基线对齐主要是为了两个控件中显示的英文单词的基线对齐。

  1. TableLayout的父类是哪个?说明什么问题?

答:它是LinearLayout的子类,这说明它实际也是线性布局

  1. TableLayout中有多少行是由什么确定的?列是由什么确定的?

答:该布局中的行由TableRow标签表示,有多少TableRow就有多少行,表列的个数由包含最多子元素的TableRow所决定。

  1. TableRow的宽度和高度分别是什么?它中的子控件呢?

答:TableRow不需要设置宽度和高度,它的宽度一定是match_parent,它的高度一定是wrap_content,它其中的控件的宽度和高度均为wrap_content。

  1. TableRow中的子控件在哪列怎么确定?如何跨列?

答:TableRow中的控件在哪一列由android:layout_column指定,该值从0开始,也可以一个元素跨多列,由android:layout_span指定跨列的个数。

  1. GridLayout是什么布局?

答:它是网格布局,是用一组没有宽度的线划分的纵横交错的格子。

  1. GridLayout中的orientation, rowCount 及 columnCount属性是什么含义?

答:orientation属性表示其中的控件是按行为主序,还是列为主序排列,rowCount为行的总数,columnCount为列的总数。

  1. 如何确定GridLayout中子控件所在的网格?如何将子控件扩展到其他网格?

答:通过android:layout_column及android:layout_row来确定它在网格中的位置,由android:layout_columnSpan和android:layout_rowSpan来确定该子控件占据多少列或多少行。

  1. 什么是帧布局?

答:帧布局为每个加入其中的控件创建一个区域(称为一帧,每个控件占据一帧)。帧与帧之间可以相互重叠。

  1. 帧布局中的子控件按什么顺序显示?

答:按他们定义的顺序,先定义的在下面,后定义的在上面

  1. 绝对布局中的子控件怎么确定位置?它的坐标系是什么?

答:绝对布局需要通过指定x、y坐标来控制每个控件的位置,放入该布局的控件需要通过android:layout_x及android:layout_y来指定准确的坐标,该坐标的单位为最好指定为dp。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值