androidgravity属性效果图1:
布局⽂件xml内容如下:
[html]
1. <?xml version="1.0" encoding="utf-8"?>
2. <LinearLayout xmlns:android="schemas.android/apk/res/android"
3. android:layout_width="fill_parent"
4. android:layout_height="fill_parent"
5. android:orientation="vertical">
6.
7. <TextView android:id="@+id/TextView01"
8. android:layout_width="fill_parent"
9. android:layout_height="35dp"
10. android:text="top"
11. android:gravity="top"
12. android:textColor="#ffffff"
13. android:background="#ff0000"
14. android:layout_margin="1px"/>
15.
16. <TextView android:id="@+id/TextView02"
17. android:layout_width="fill_parent"
18. android:layout_height="35dp"
19. android:text="bottom"
20. android:gravity="bottom"
21. android:textColor="#ffffff"
22. android:background="#ff0000"
23. android:layout_margin="1px"/>
24.
25. <TextView android:id="@+id/TextView03"
htmlbutton属性26. android:layout_width="fill_parent"
27. android:layout_height="35dp"
28. android:text="left"
29. android:gravity="left"
30. android:textColor="#ffffff"
31. android:background="#ff0000"
32. android:layout_margin="1px"/>
33.
34. <TextView android:id="@+id/TextView04"
35. android:layout_width="fill_parent"
36. android:layout_height="35dp"
37. android:text="right"
38. android:gravity="right"
39. android:textColor="#ffffff"
40. android:background="#ff0000"
41. android:layout_margin="1px"/>
42.
43. <TextView android:id="@+id/TextView05"
44. android:layout_width="fill_parent"
45. android:layout_height="35dp"
46. android:text="center_vertical"
47. android:gravity="center_vertical"
48. android:textColor="#ffffff"
49. android:background="#ff0000"
50. android:layout_margin="1px"/>
51.
52. <TextView android:id="@+id/TextView06"
53. android:layout_width="fill_parent"
54. android:layout_height="35dp"
55. android:text="fill_vertical"
56. android:gravity="fill_vertical"
57. android:textColor="#ffffff"
58. android:background="#ff0000"
59. android:layout_margin="1px"/>
60.
61. <TextView android:id="@+id/TextView07"
62. android:layout_width="fill_parent"
63. android:layout_height="35dp"
64. android:text="center_horizontal"
65. android:gravity="center_horizontal"
66. android:textColor="#ffffff"
67. android:background="#ff0000"
68. android:layout_margin="1px"/>
69.
70. <TextView android:id="@+id/TextView08"
71. android:layout_width="fill_parent"
72. android:layout_height="35dp"
73. android:text="fill_horizontal"
74. android:gravity="fill_horizontal"
75. android:textColor="#ffffff"
76. android:background="#ff0000"
77. android:layout_margin="1px"/>
78.
79. <TextView android:id="@+id/TextView09"
80. android:layout_width="fill_parent"
81. android:layout_height="35dp"
82. android:text="center"
83. android:gravity="center"
84. android:textColor="#ffffff"
85. android:background="#ff0000"
86. android:layout_margin="1px"/>
87.
88. <TextView android:id="@+id/TextView10"
89. android:layout_width="fill_parent"
90. android:layout_height="35dp"
91. android:text="fill"
92. android:gravity="fill"
93. android:textColor="#ffffff"
94. android:background="#ff0000"
95. android:layout_margin="1px"/>
96.
97. <TextView android:id="@+id/TextView11"
98. android:layout_width="fill_parent"
99. android:layout_height="35dp"
100. android:text="clip_vertical"
101. android:gravity="clip_vertical"
102. android:textColor="#ffffff"
103. android:background="#ff0000"
104. android:layout_margin="1px"/>
105.
106. <TextView android:id="@+id/TextView12"
107. android:layout_width="fill_parent"
108. android:layout_height="35dp"
109. android:text="clip_horizontal"
110. android:gravity="clip_horizontal"
111. android:textColor="#ffffff"
112. android:background="#ff0000"
113. android:layout_margin="1px"/>
114.
115. </LinearLayout>
1.⾸先来看看android:layout_gravity和android:gravity的使⽤区别。
android:gravity:
这个是针对控件⾥的元素来说的,⽤来控制元素在该控件⾥的显⽰位置。例如,在⼀个Button按钮控
件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的⽂字“提交”将会位于Button的左部。
android:layout_gravity:
这个是针对控件本⾝⽽⾔,⽤来控制该控件在包含该控件的⽗控件中的位置。同样,当我们在Button按钮控件中设置android:layout_gravity="left"属性时,表⽰该Button按钮将位于界⾯的左部。
2.属性值:
这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。
⼀个属性可以包含多个值,需⽤“|”分开。其含义如下:
top将对象放在其容器的顶部,不改变其⼤⼩.
bottom将对象放在其容器的底部,不改变其⼤⼩.
left将对象放在其容器的左侧,不改变其⼤⼩.
right将对象放在其容器的右侧,不改变其⼤⼩.
center_vertical 将对象纵向居中,不改变其⼤⼩.
垂直对齐⽅式:垂直⽅向上居中对齐。
fill_vertical 必要的时候增加对象的纵向⼤⼩,以完全充满其容器. 垂直⽅向填充
center_horizontal 将对象横向居中,不改变其⼤⼩.
⽔平对齐⽅式:⽔平⽅向上居中对齐
fill_horizontal 必要的时候增加对象的横向⼤⼩,以完全充满其容器. ⽔平⽅向填充
center将对象横纵居中,不改变其⼤⼩.
fill必要的时候增加对象的横纵向⼤⼩,以完全充满其容器.
clip_vertical 附加选项,⽤于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部.
垂直⽅向裁剪
clip_horizontal 附加选项,⽤于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧.
⽔平⽅向裁剪
我们主要来看看center_vertical和center_horizontal两个属性值,center_vertical是指将对象在垂直⽅向上居中对齐,即在从上到下的⽅向上选择中间的位置放好;center_horizontal是指将对象⽔平⽅向上居中对齐,即在从左到右的⽅向上选择中间的位置放好。
3.特殊情况
当我们采⽤LinearLayout布局时,有以下特殊情况需要我们注意:
(1)当 android:orientation="vertical" 时,android:layout_gravity只有⽔平⽅向的设置才起作⽤,垂直⽅向的设置不起作⽤。即:
left,right,center_horizontal 是⽣效的。
(2)当 android:orientation="horizontal" 时,android:layout_gravity只有垂直⽅向的设置才起作⽤,⽔平⽅向的设置不起作⽤。即:
top,bottom,center_vertical 是⽣效的。
01. <?xml version="1.0"encoding="utf-8"?>
02. <LinearLayout xmlns:android="schemas.android/apk/res/android"
03. android:orientation="vertical"
04. android:layout_width="fill_parent"
05. android:layout_height="fill_parent"
06. >
07. <TextView
08. android:layout_width="100dip"
09. android:layout_height="100dip"
10. android:layout_gravity="bottom|center_horizontal"
11. android:gravity="center|bottom"
12. android:background="#00FF00"
13. android:text="@string/textview"
14. />
15.
15.
16. <Button
17. android:layout_width="100dip"
18. android:layout_height="100dip"
19. android:layout_gravity="bottom|left"
20. android:gravity="left|top"
21. android:background="#FF0000"
22. android:text="@string/button"
23. />
24. </LinearLayout>
其效果如图:
在TextView中,我们设置了android:layout_gravity="bottom|center_horizontal",但该TextView并没有显⽰在屏幕的下⽅正中央,表明只
有center_horizontal属性起了作⽤,这正是因为我们使⽤了LinearLayout布局,并且其android:orientation="vertical",只有⽔平⽅向的设置才会起作⽤,其他⽅向则会失效。同样,Button也⼀样。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论