您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Android studio基本布局有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Android studio基本布局有哪些”吧!
線性布局LinearLayout
相對(duì)布局RelativeLayout
表格布局TableLayout
層布局FrameLayout
絕對(duì)布局AbsoluteLayout
網(wǎng)格布局GridLayout
用的相對(duì)較多的是線性布局和相對(duì)布局。接下來重點(diǎn)演示這兩種布局
其中,表格布局是線性布局的子類。網(wǎng)格布局是android 4.0后新增的布局。
線性布局中最重要的屬性:orientation
horizontal(水平布局)和vertical(垂直布局)兩種方式
屬性名
orientation 布局方式,有horizontal(水平布局)和vertical(垂直布局)兩種方式
id 組件名稱
layout_width 該組件的寬度
layout_height 該組件的高度
layout_weight 權(quán)重
layout_gravity 該組件(在父容器)中的對(duì)齊方式
gravity 該組件所含子組件在其內(nèi)部的對(duì)齊方式
background 設(shè)置背景圖片或填充顏色
效果圖
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@color/gray" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_marginTop="20dp" android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="wrap_content"> <TextView android:text="權(quán)重1" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"/> <TextView android:text="權(quán)重2" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"/> <TextView android:text="權(quán)重3" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"/> <TextView android:text="權(quán)重4" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"/> <TextView android:text="權(quán)重5" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:layout_marginTop="20dp" android:background="@color/teal_200" android:layout_width="match_parent" android:gravity="center" android:layout_height="wrap_content"> <TextView android:text="第一個(gè)布局" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:background="@color/purple" android:layout_width="match_parent" android:gravity="center" android:layout_height="wrap_content"> <TextView android:text="第二個(gè)布局" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:background="@color/teal" android:layout_width="match_parent" android:gravity="center" android:layout_height="wrap_content"> <TextView android:text="第三個(gè)布局" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout>
屬性:
android:layout_marginTop=“25dip” //頂部距離
android:gravity=“l(fā)eft” //空間布局位置
android:layout_marginLeft="15dip //距離左邊距
相對(duì)于給定ID控件
android:layout_above 將該控件的底部置于給定ID的控件之上;
android:layout_below 將該控件的底部置于給定ID的控件之下;
android:layout_toLeftOf 將該控件的右邊緣與給定ID的控件左邊緣對(duì)齊;
android:layout_toRightOf 將該控件的左邊緣與給定ID的控件右邊緣對(duì)齊;
android:layout_alignBaseline 將該控件的baseline與給定ID的baseline對(duì)齊;
android:layout_alignTop 將該控件的頂部邊緣與給定ID的頂部邊緣對(duì)齊;
android:layout_alignBottom 將該控件的底部邊緣與給定ID的底部邊緣對(duì)齊;
android:layout_alignLeft 將該控件的左邊緣與給定ID的左邊緣對(duì)齊;
android:layout_alignRight 將該控件的右邊緣與給定ID的右邊緣對(duì)齊;
相對(duì)于父組件
android:layout_alignParentTop 如果為true,將該控件的頂部與其父控件的頂部對(duì)齊;
android:layout_alignParentBottom 如果為true,將該控件的底部與其父控件的底部對(duì)齊;
android:layout_alignParentLeft 如果為true,將該控件的左部與其父控件的左部對(duì)齊;
android:layout_alignParentRight 如果為true,將該控件的右部與其父控件的右部對(duì)齊;
居中
android:layout_centerHorizontal 如果為true,將該控件的置于水平居中;
android:layout_centerVertical 如果為true,將該控件的置于垂直居中;
android:layout_centerInParent 如果為true,將該控件的置于父控件的中央;
指定移動(dòng)像素
android:layout_marginTop 上偏移的值;
android:layout_marginBottom 下偏移的值;
android:layout_marginLeft 左偏移的值;
android:layout_marginRight 右偏移的值;
效果圖
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@color/gray" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:gravity="center" android:background="@color/teal" android:text="text1" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:id="@+id/tv_two" android:layout_alignParentBottom="true" android:gravity="center" android:background="@color/teal" android:text="text2" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:layout_alignParentRight="true" android:gravity="center" android:background="@color/teal" android:text="text3" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:layout_centerInParent="true" android:gravity="center" android:background="@color/teal" android:text="text5" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:layout_above="@+id/tv_two" android:layout_alignParentRight="true" android:gravity="center" android:background="@color/teal" android:text="text4" android:layout_width="50dp" android:layout_height="50dp" /> </RelativeLayout>
屬性
三個(gè)常用屬性
android:collapseColumns:設(shè)置需要被隱藏的列的序號(hào)
android:shrinkColumns:設(shè)置允許被收縮的列的列序號(hào)
android:stretchColumns:設(shè)置運(yùn)行被拉伸的列的列序號(hào)
FrameLayout(幀布局)可以說是六大布局中最為簡單的一個(gè)布局,這個(gè)布局直接在屏幕上開辟出一塊空白的區(qū)域,當(dāng)我們往里面添加控件的時(shí)候,會(huì)默認(rèn)把他們放到這塊區(qū)域的左上角,而這種布局方式卻沒有任何的定位方式,所以它應(yīng)用的場景并不多;幀布局的大小由控件中最大的子控件決定,如果控件的大小一樣大的話,那么同一時(shí)刻就只能看到最上面的那個(gè)組件!后續(xù)添加的控件會(huì)覆蓋前一個(gè)!雖然默認(rèn)會(huì)將控件放置在左上角,但是我們也可以通過layout_gravity屬性,指定到其他的位置!
效果圖
xml布局:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@color/gray" android:layout_height="match_parent"> <TextView android:background="#000000" android:layout_width="fill_parent" android:layout_height="180dp"/> <TextView android:background="#ffff00" android:layout_width="fill_parent" android:layout_height="130dp"/> <TextView android:background="#ff00ff" android:layout_width="fill_parent" android:layout_height="100dp"/> <TextView android:background="#00ffff" android:layout_width="fill_parent" android:layout_height="50dp"/> </FrameLayout>
屬性:
絕對(duì)布局又可以叫做坐標(biāo)布局,可以直接指定子元素的絕對(duì)位置(xy)
由于手機(jī)屏幕尺寸差別比較大使用絕對(duì)定位的適應(yīng)性會(huì)比較差,在屏幕的適配上有缺陷
常用屬性:
android:foreground:*設(shè)置改幀布局容器的前景圖像
android:foregroundGravity:設(shè)置前景圖像顯示的位置
android:layout_x=”” 控制當(dāng)前子類控件的x位置
android:layout_y=”” 控制當(dāng)前子類控件的y位置
效果圖
.xml布局
和之前的TableLayout(表格布局) 有點(diǎn)類似,不過網(wǎng)格布局的好處是:
可以自己設(shè)置布局中組件的排列方式
可以自定義網(wǎng)格布局有多少行,多少列
可以直接設(shè)置組件位于某行某列
可以設(shè)置組件橫跨幾行或者幾列
效果圖
.xml布局:
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/GridLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:columnCount="4" android:orientation="horizontal" android:rowCount="6" > <TextView android:layout_columnSpan="4" android:layout_gravity="fill" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:background="#15CBE3" android:text="0" android:textSize="50sp" /> <Button android:layout_columnSpan="2" android:layout_gravity="fill" android:text="回退" /> <Button android:layout_columnSpan="2" android:layout_gravity="fill" android:text="清空" /> <Button android:text="1" /> <Button android:text="2" /> <Button android:text="3" /> <Button android:text="+" /> <Button android:text="4" /> <Button android:text="5" /> <Button android:text="6" /> <Button android:text="-" /> <Button android:text="7" /> <Button android:text="8" /> <Button android:text="9" /> <Button android:text="*" /> <Button android:text="0" /> <Button android:text="." /> <Button android:text="=" /> <Button android:text="/" /> </GridLayout>
<GridLayout android:layout_width=“fill_parent”:網(wǎng)格布局寬度為填滿屏幕
<GridLayout android:layout_height=“wrap_content”:網(wǎng)格布局高度為包裹內(nèi)容
<GridLayout android:columnCount=“4”:網(wǎng)格布局設(shè)置 4 列
<GridLayout android:rowCount=“6”:網(wǎng)格布局設(shè)置 6 行
<GridLayout android:layout_columnSpan=“2”:清空和回退橫跨兩列
<GridLayout android:orientation=“horizontal”:網(wǎng)格布局設(shè)置為水平布局
到此,相信大家對(duì)“Android studio基本布局有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。