关闭

Android Layout 属性

标签: android布局
204人阅读 评论(0) 收藏 举报
分类:

 基于网上的资料及自己使用的情况,整理了下Android 布局相关的属性,比较常用.

 

1. 基本属性

android:id         为控件指定相应的ID
android:text            指定控件的文本,置尽量使用strings.xml
android:grivity       指定控件的基本位置 ,比如举重,居右,
android:padding          指定控件的内边距,控件当中的内容
android:singleLine        如果设置为真的话,则将控件的内容在同一行当中显示

 

------------------- RelativeLayout 相对布局相关 start ---------------------------------------
android:layout_above  将该空间的底部至于给定ID的空间之上
android:layout_below:将该控件的顶部至于给定ID的控件之下
android:layout_toLeftOf:将该控件的右边缘和给定ID的控件的左 边缘对其
android:layout_toRightOf  将该控件的左边缘和给定的ID的控件的右边缘对齐


android:layout_alignBaseLine 该控件的baseline和给定ID的控件的Baseline对齐
android:layout_alignBottom  将该控件的底部边缘与给定ID控件的底部边缘
android:layout_alignLeft将该控件左边缘与给定ID控件的左边缘对齐
android:layout_alignRight将该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop将给定控件的顶部边缘与给定ID控件的顶部对齐


android:alignParentBottom如果该值为true 则将该控件的底部和父控件的底部对齐
android:layout_alignParentLeft如果该值为true则将该控件的左边与父控件的左边对齐
android:layout_alignParentRight  如果该值为true则将该控件的右边与父控件的右边对齐
android:layout_alignParentTop  将控件的顶部与父控件的顶部对齐

------------------- RelativeLayout 相对布局相关 End ---------------------------------------


android:layout_centerHorizontal如果值为真,该控件将被至于水平方向的中央
android:layout_centerInParent  将被至于父控件水平方向和垂直都居中
android:layout_centerVertical将被至于垂直方向的中央

 

2. 各类属性值


第一类
:属性值为true或false

android:layout_centerHrizontal  水平居中

android:layout_centerVertical   垂直居中

android:layout_centerInparent    相对于父元素完全居中

android:layout_alignParentBottom 贴紧父元素的下边缘

android:layout_alignParentLeft   贴紧父元素的左边缘

android:layout_alignParentRight  贴紧父元素的右边缘

android:layout_alignParentTop    贴紧父元素的上边缘

android:layout_alignWithParentIfMissing  如果对应的兄弟元素找不到的话就以父元素做参照物

 

第二类:属性值必须为id的引用名“@id/id-name

android:layout_below      在某元素的下方

android:layout_above      在某元素的的上方

android:layout_toLeftOf   在某元素的左边

android:layout_toRightOf  在某元素的右边

android:layout_alignTop   本元素的上边缘和某元素的的上边缘对齐

android:layout_alignLeft  本元素的左边缘和某元素的的左边缘对齐

android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐

android:layout_alignRight  本元素的右边缘和某元素的的右边缘对齐

 

第三类:属性值为具体的像素值,如30dip,40px

android:layout_marginBottom              离父控件底边缘的距离

android:layout_marginLeft                   离父控件左边缘的距离

android:layout_marginRight                 离父控件右边缘的距离

android:layout_marginTop                   离父控件上边缘的距离

 

3.  android:gravity 和 android:layout_gravity 的区别

android:gravity 

android:gravity属性是对该view 内容的限定.比如一个button 上面的text.  你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右

android:layout_gravity

android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右

android:layout_alignParentRight

使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。

 

4 .padding和margin的区别:

所以padding是定义控件自己的内容和控件边缘之间的距离,padding有填充填料的意思,而margin是在说控件的四个边缘之外的距离,指的是和别的控件之间的距离,margin有边缘,页面留白的意思

                                       

5. 动画相关属性
AlphaAnimation 控制渐变透明的动画效果
ScaleAnimatin 控制尺寸伸缩的动画效果
TranslateAnimation 控制画面平移的动画效果
RotateAnimation 控制画面角度变化(旋转)的动画效果
LayoutAnimation 渲染ViewGroup中每个View显示时候的动画效果

 

6. LayoutParams (布局参数) 属性

LinearLayout 、 RelativeLayout 、FrameLayout 等布局都有LayoutParams内部类,用于在代码中动态设置布局属性,以动态调整布局。

常用于不同状态下,需要动态调整控件位置.

如: 在一个RelativeLayout 布局中,有两个LinearLayout1 和LinearLayout2 (LinearLayout2 实际上是布局中的LinearLayout中的控件,为了方便这样写而已

LinearLayout2 置 layout_toStartOf  = LinearLayout1,并且layout_alignWithParentIfMissing = true.

假设当LinearLayout1为GONE的时候,则LinearLayout2显示在屏幕最右边,不美观。

这是可以设置当LinearLayout1为GONE的时候,在代码里通过LayoutParams设置LinearLayout2的右边距:

int rightMargin = 0;

rightMargin = (int) getResources().getDimension(R.dimen.my_right_margin);
LinearLayout.LayoutParams lp = (LinerLayout.LayoutParams) <span style="color:#000099;"><span style="BACKGROUND-COLOR: #ffffff">LinearLayout2.getLayoutParams</span>();
</span><span style="color:#000099;">lp.rightMargin</span> = rightMargin;
<span style="BACKGROUND-COLOR: #ffff33">LinearLayout2.setLayoutParams(lp);
</span>

 

7.小结

LinearLayout:  线性布局,使用时要注意方向:vertical 和 horizontal。 避免方向弄错导致控件显示不出来(不会自动换行).

RelativeLayout: 相对布局,使用时注意和父控件及其它控件的相对位置关系。

FrameLayout: 帧布局,注意后面显示的控件可能会覆盖前一个控件。

经常会组合使用,使得布局文件简洁易懂。

因为xml 布局相对不灵活,如果在运行中要动态改变控件位置或者大小,可以使用LayoutParams 进行设置。

 

0
0

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