Android学习笔记06:线性布局LinearLayout

  线性布局在xml文件中使用<LinearLayout>来定义。

  线性布局可以分为水平和垂直方向的布局,可以通过android:orientation来定义方向,android:orientation=“horizontal”表示水平方向,android:orientation=“vertical”表示垂直方向。

  android:layout_width表示控件的宽度,android_layout_height表示控件的高度,其属性值有wrap_content、fill_parent、match_parent三种。其中,wrap_content表示填满父控件的空白,fill_parent表示大小刚好足够显示当前控件里的内容,match_parent与fill_parent作用是相同的。

  android:layout_weight表示控件的权重,描述了控件所占的比例有多大。所有的视图都有layout_weight值,其默认为零,表示需要显示多大的视图就占据多大的屏幕空间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体layout_weight值和在其它视图屏幕布局的layout_weight值中所占的比率而定。

  下面是一个使用线性布局的实例。activity_main.xml源码如下:

Android_LinearLayout实例
  1 <LinearLayout 
  2     xmlns:android="http://schemas.android.com/apk/res/android"
  3     android:orientation="vertical"
  4     android:background="#FFFFFF"
  5     android:layout_width="match_parent"
  6     android:layout_height="match_parent" >
  7     
  8     <!-- 最上面的输入框 -->
  9     <LinearLayout 
 10     android:orientation="horizontal"
 11     android:background="#FFFFFF"
 12     android:layout_width="match_parent"
 13     android:layout_height="wrap_content" >
 14     
 15         <EditText
 16         android:id="@+id/mEditText"
 17         android:inputType="number"
 18         android:layout_width="match_parent"
 19         android:layout_height="wrap_content"    >
 20         </EditText>
 21         
 22     </LinearLayout>
 23     
 24     <!-- 第一排的四个按键  -->
 25     <LinearLayout 
 26     android:orientation="horizontal"
 27     android:background="#FFFFFF"
 28     android:layout_width="match_parent"
 29     android:layout_height="wrap_content"  >
 30     
 31         <Button 
 32         android:id="@+id/mButton_mc"
 33         android:text="@string/mc"
 34         android:layout_weight="1"
 35         android:layout_width="0dip"
 36         android:layout_height="wrap_content"    >            
 37         </Button>
 38         
 39         <Button 
 40         android:id="@+id/mButton_mPlus"
 41         android:text="@string/mPlus"
 42         android:layout_weight="1"
 43         android:layout_width="0dip"
 44         android:layout_height="wrap_content"    >            
 45         </Button>
 46         
 47         <Button 
 48         android:id="@+id/mButton_mMinus"
 49         android:text="@string/mMinus"
 50         android:layout_weight="1"
 51         android:layout_width="0dip"
 52         android:layout_height="wrap_content"    >            
 53         </Button>
 54         
 55         <Button 
 56         android:id="@+id/mButton_mr"
 57         android:text="@string/mr"
 58         android:layout_weight="1"
 59         android:layout_width="0dip"
 60         android:layout_height="wrap_content"    >            
 61         </Button>
 62         
 63     </LinearLayout>
 64     
 65     <!-- 第二排的四个按键  -->
 66     <LinearLayout 
 67     android:orientation="horizontal"
 68     android:background="#FFFFFF"
 69     android:layout_width="match_parent"
 70     android:layout_height="wrap_content"    >
 71         
 72         <Button 
 73         android:id="@+id/mButton_C"
 74         android:text="@string/C"
 75         android:layout_weight="1"
 76         android:layout_width="0dip"
 77         android:layout_height="wrap_content"    >            
 78         </Button>
 79         
 80         <Button 
 81         android:id="@+id/mButton_PlusAndMinusLog"
 82         android:text="@string/PlusAndMinusLog"
 83         android:layout_weight="1"
 84         android:layout_width="0dip"
 85         android:layout_height="wrap_content"    >            
 86         </Button>
 87         
 88         <Button 
 89         android:id="@+id/mButton_DivisionLog"
 90         android:text="@string/DivisionLog"
 91         android:layout_weight="1"
 92         android:layout_width="0dip"
 93         android:layout_height="wrap_content"    >            
 94         </Button>
 95         
 96         <Button 
 97         android:id="@+id/mButton_MultiplicationLog"
 98         android:text="@string/MultiplicationLog"
 99         android:layout_weight="1"
100         android:layout_width="0dip"
101         android:layout_height="wrap_content"    >
102         </Button>  
103           
104     </LinearLayout>
105     
106     <!-- 第三排的四个按键  -->
107     <LinearLayout 
108     android:orientation="horizontal"
109     android:background="#FFFFFF"
110     android:layout_width="match_parent"
111     android:layout_height="wrap_content"    >
112             
113         <Button 
114         android:id="@+id/mButton_Number7"
115         android:text="@string/Number7"
116         android:layout_weight="1"
117         android:layout_width="0dip"
118         android:layout_height="wrap_content"    >            
119         </Button>
120         
121         <Button 
122         android:id="@+id/mButton_Number8"
123         android:text="@string/Number8"
124         android:layout_weight="1"
125         android:layout_width="0dip"
126         android:layout_height="wrap_content"    >            
127         </Button>
128         
129         <Button 
130         android:id="@+id/mButton_Number9"
131         android:text="@string/Number9"
132         android:layout_weight="1"
133         android:layout_width="0dip"
134         android:layout_height="wrap_content"    >            
135         </Button>
136         
137         <Button 
138         android:id="@+id/mButton_SubtractionLog"
139         android:text="@string/SubtractionLog"
140         android:layout_weight="1"
141         android:layout_width="0dip"
142         android:layout_height="wrap_content"    >
143         </Button>
144         
145     </LinearLayout>
146     
147     <!-- 第四排的四个按键  -->
148     <LinearLayout 
149     android:orientation="horizontal"
150     android:background="#FFFFFF"
151     android:layout_width="match_parent"
152     android:layout_height="wrap_content"    >
153             
154         <Button 
155         android:id="@+id/mButton_Number4"
156         android:text="@string/Number4"
157         android:layout_weight="1"
158         android:layout_width="0dip"
159         android:layout_height="wrap_content"    >            
160         </Button>
161         
162         <Button 
163         android:id="@+id/mButton_Number5"
164         android:text="@string/Number5"
165         android:layout_weight="1"
166         android:layout_width="0dip"
167         android:layout_height="wrap_content"    >            
168         </Button>
169         
170         <Button 
171         android:id="@+id/mButton_Number6"
172         android:text="@string/Number6"
173         android:layout_weight="1"
174         android:layout_width="0dip"
175         android:layout_height="wrap_content"    >            
176         </Button>
177         
178         <Button 
179         android:id="@+id/mButton_AdditionLog"
180         android:text="@string/AdditionLog"
181         android:layout_weight="1"
182         android:layout_width="0dip"
183         android:layout_height="wrap_content"    >
184         </Button>
185         
186     </LinearLayout>  
187     
188     <!-- 最后两排的六个按键  -->
189     <LinearLayout 
190     android:orientation="horizontal"
191     android:background="#FFFFFF"
192     android:baselineAligned="false"
193     android:layout_width="match_parent"
194     android:layout_height="wrap_content"    >
195      
196         <!-- 右下角等号左边的五个按钮  -->
197         <LinearLayout 
198         android:orientation="vertical"
199         android:background="#FFFFFF"
200         android:layout_weight="3"
201         android:layout_width="0dip"
202         android:layout_height="wrap_content"    >
203         
204             <!-- 左下角的1、2、3三个按钮  -->
205             <LinearLayout 
206             android:orientation="horizontal"
207             android:background="#FFFFFF"
208             android:layout_width="match_parent"
209             android:layout_height="wrap_content"    > 
210             
211                 <Button 
212                 android:id="@+id/mButton_Number1"
213                 android:text="@string/Number1"
214                 android:layout_weight="1"
215                 android:layout_width="0dip"
216                 android:layout_height="wrap_content"    >
217                 </Button>  
218                 
219                 <Button 
220                 android:id="@+id/mButton_Number2"
221                 android:text="@string/Number2"
222                 android:layout_weight="1"
223                 android:layout_width="0dip"
224                 android:layout_height="wrap_content"    >
225                 </Button>
226                 
227                 <Button 
228                 android:id="@+id/mButton_Number3"
229                 android:text="@string/Number3"
230                 android:layout_weight="1"
231                 android:layout_width="0dip"
232                 android:layout_height="wrap_content"    >
233                 </Button>            
234                 
235             </LinearLayout>
236             
237             <!-- 左下角的0和。两个按钮  -->
238             <LinearLayout 
239             android:orientation="horizontal"
240             android:background="#FFFFFF"
241             android:layout_width="match_parent"
242             android:layout_height="wrap_content"    >     
243             
244                 <Button 
245                 android:id="@+id/mButton_Number0"
246                 android:text="@string/Number0"
247                 android:layout_weight="2"
248                 android:layout_width="0dip"
249                 android:layout_height="wrap_content"    >
250                 </Button>        
251                 
252                 <Button 
253                 android:id="@+id/mButton_Point"
254                 android:text="@string/Point"
255                 android:layout_weight="1"
256                 android:layout_width="0dip"
257                 android:layout_height="wrap_content"    >
258                 </Button>
259                 
260             </LinearLayout>  
261                     
262         </LinearLayout> 
263         
264         <!-- 右下角的等号  -->
265         <LinearLayout 
266         android:background="#FFFFFF"
267         android:layout_weight="1"
268         android:layout_width="0dip"
269         android:layout_height="match_parent"    >
270         
271                 <Button 
272                 android:id="@+id/mButton_EqualLog"
273                 android:text="@string/EqualLog"
274                 android:layout_width="match_parent"
275                 android:layout_height="match_parent"    >
276                 </Button>    
277         </LinearLayout> 
278         
279     </LinearLayout> 
280     
281 </LinearLayout>

  效果图如图1所示:

图1:Android_LinearLayout实例

   activity_main.xml中的Button控件中的android:text定义了各个按钮所显示的文字,其中使用到的字符串全部都定义在res资源目录下的String.xml文件中,其源码如下:

Android_LinearLayout实例
 1 <resources>
 2   
 3     <string name="app_name">Android_LinearLayout</string>
 4     <string name="hello_world">Hello world!</string>
 5     <string name="menu_settings">Settings</string>
 6     <string name="title_activity_main">MainActivity</string>
 7     
 8     <string name="mc">mc</string>
 9     <string name="mPlus">m+</string>
10     <string name="mMinus">m-</string>
11     <string name="mr">mr</string>
12     <string name="C">C</string>
13     <string name="PlusAndMinusLog">+/-</string>    
14     <string name="DivisionLog">/</string>
15     <string name="MultiplicationLog">*</string> 
16     <string name="Number7">7</string>
17     <string name="Number8">8</string>
18     <string name="Number9">9</string>    
19     <string name="SubtractionLog">-</string>      
20     <string name="Number4">4</string>
21     <string name="Number5">5</string>
22     <string name="Number6">6</string>    
23     <string name="AdditionLog">+</string>     
24     <string name="Number1">1</string>
25     <string name="Number2">2</string>
26     <string name="Number3">3</string>    
27     <string name="Number0">0</string>  
28     <string name="Point">.</string>    
29     <string name="EqualLog">=</string>    
30         
31 </resources>

 

 

 

posted @ 2012-11-05 22:50  依旧淡然  阅读(19777)  评论(2编辑  收藏  举报