導航:首頁 > 操作系統 > android布局按比例

android布局按比例

發布時間:2025-01-11 14:18:03

android布局,用LinearLayout做如下計算器界面,可按屏幕大小變換比例

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="75dp"
android:orientation="horizontal">

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="2"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="3"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="/"/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="75dp"
android:orientation="horizontal">

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="4"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="5"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="6"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="*"/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="75dp"
android:orientation="horizontal">

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="7"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="8"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="9"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="-"/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="horizontal">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal">

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="0"/>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:text="."/>
</LinearLayout>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="="/>
</LinearLayout>

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="3"
android:text="+"/>
</LinearLayout>

</LinearLayout>

㈡ android:layout_width 單位有沒有百分比的設置方法

沒有設置方法

線性布局就用權重,設置layout_width="0dp",加個android:layout_weight="1.0"//權重

相對布局設置layout_width="0dp",然後在代碼中通過屏幕寬度設置每個控制項的大小。

可以通過android:layout_weight的方式實現百分比

(2)android布局按比例擴展閱讀:

view中的layout_width形容的是本view和父容器的關系;而view中的width是用來描述自己本身的。

android:width 的值,一般是 "100dp" 這樣的數值;

android:layout_width 的值,一般是"fill_parent","wrap_content","match_parent".當然,它也可以像前者一樣,設置數值的。

android:layout_width 其實是可以實現 android:width 的效果的,我覺得這應該是為什麼在 android 實例中看不到有人用 android:width 的原因吧。

帶"layout"的屬性是指整個控制項而言的,是與父控制項之間的關系,如 layout_gravity 在父控制項中的對齊方式, layout_margin 是級別相同的控制項之間的間隙等等;

不帶"layout" 的屬性是指控制項中文本的格式,如gravity是指文本的對齊方式等等,而其中文本的格式又受制約於它的控制項在父控制項中的屬性。

㈢ Android 界面排版

Android布局是應用界面開發的重要一環,在Android中,共有五種布局方式,分別是:FrameLayout(框架布局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局).
一、FrameLayout
這個布局可以看成是牆腳堆東西,有一個四方的矩形的左上角牆腳,我們放了第一個東西,要再放一個,那就在放在原來放的位置的上面,這樣依次的放,會蓋住原來的東西。這個布局比較簡單,也只能放一點比較簡單的東西。

二、LinearLayout

線性布局,這個東西,從外框上可以理解為一個div,他首先是一個一個從上往下羅列在屏幕上。每一個LinearLayout裡面又可分為垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。當垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;水平布局時,只有一行,每一個元素依次向右排列。
linearLayout中有一個重要的屬性 android:layout_weight="1",這個weight在垂直布局時,代錶行距;水平的時候代表列寬;weight值越大就越大。

三、AbsoluteLayout

絕對布局猶如div指定了absolute屬性,用X,Y坐標來指定元素的位置android:layout_x="20px" android:layout_y="12px" 這種布局方式也比較簡單,但是在垂直隨便切換時,往往會出問題,而且多個元素的時候,計算薯指比較麻煩。 AbsoluteLayout 可以讓子元素指定準確的x/y坐標值,並顯示在屏幕上。AbsoluteLayout 沒有頁邊框,允許元素之間互相重疊(盡管不推薦)。他是絕對坐標,所以在實際中不提倡使用。
相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有:
相對於某一個元素
// 相對於給雀埋定ID控制項
android:layout_above 將該控制項的底部置於給定ID的控制項之上;
android:layout_below 將該控制項的底部置於給定ID的控制項之下;
android:layout_toLeftOf 將該控制項的右邊緣與給定ID的數歲配控制項左邊緣對齊;
android:layout_toRightOf 將該控制項的左邊緣與給定ID的控制項右邊緣對齊;

android:layout_alignBaseline 將該控制項的baseline與給定ID的baseline對齊;
android:layout_alignTop 將該控制項的頂部邊緣與給定ID的頂部邊緣對齊;
android:layout_alignBottom 將該控制項的底部邊緣與給定ID的底部邊緣對齊;
android:layout_alignLeft 將該控制項的左邊緣與給定ID的左邊緣對齊;
android:layout_alignRight 將該控制項的右邊緣與給定ID的右邊緣對齊;

// 相對於父組件
android:layout_alignParentTop 如果為true,將該控制項的頂部與其父控制項的頂部對齊;
android:layout_alignParentBottom 如果為true,將該控制項的底部與其父控制項的底部對齊;
android:layout_alignParentLeft 如果為true,將該控制項的左部與其父控制項的左部對齊;
android:layout_alignParentRight 如果為true,將該控制項的右部與其父控制項的右部對齊;

// 居中
android:layout_centerHorizontal 如果為true,將該控制項的置於水平居中;
android:layout_centerVertical 如果為true,將該控制項的置於垂直居中;
android:layout_centerInParent 如果為true,將該控制項的置於父控制項的中央;

// 指定移動像素
android:layout_marginTop 上偏移的值;
android:layout_marginBottom 下偏移的值;
android:layout_marginLeft 左偏移的值;
android:layout_marginRight 右偏移的值;

example:
android:layout_below = "@id/***"
android:layout_alignBaseline = "@id/***"
android:layout_alignParentTop = true
android:layout_marginLeft = 「10px」

還可以指定邊距等,具體詳見API

五.TableLayout
表格布局類似Html裡面的Table。每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素,設定他的對齊方式 android:gravity="" 。
每一個布局都有自己適合的方式,另外,這五個布局元素可以相互嵌套應用,做出美觀的界面。TableLayout 將子元素的位置分配到行或列中。一個TableLayout 由許多的TableRow 組成,每個TableRow 都會定義一個 row 。TableLayout 容器不會顯示row 、cloumns 或cell 的邊框線。每個 row 擁有0個或多個的cell ;和html中的table查不多少。在實際中也經常使用。

Android的Margin和Padding跟Html的是一樣的。通俗的理解 Padding 為內邊框,Margin 為外邊框
對應的屬性為
android:layout_marginBottom="25dip"
android:layout_marginLeft="10dip"
android:layout_marginTop="10dip"
android:layout_marginRight="10dip"
android:paddingLeft="1dip"
android:paddingTop="1dip"
android:paddingRight="1dip"
android:paddingBottom="1dip"
如果左右上下都是相同的設置則可以直接設置
android:layout_margin="10dip"
android:padding="5dip"

過去,程序員通常以像素為單位設計計算機用戶界面。例如,定義一個寬度為300像素的表單欄位,列之間的間距為5個像素,圖標大小為16×16像素 等。這樣處理的問題在於,如果在一個每英寸點數(dpi)更高的新顯示器上運行該程序,則用戶界面會顯得很小。在有些情況下,用戶界面可能會小到難以看清 內容。

與解析度無關的度量單位可以解決這一問題。Android支持下列所有單位。

px(像素):屏幕上的點。

in(英寸):長度單位。

mm(毫米):長度單位。

pt(磅):1/72英寸。

dp(與密度無關的像素):一種基於屏幕密度的抽象單位。在每英寸160點的顯示器上,1dp = 1px。

dip:與dp相同,多用於android/ophone示例中。

sp(與刻度無關的像素):與dp類似,但是可以根據用戶的字體大小首選項進行縮放。

為了使用戶界面能夠在現在和將來的顯示器類型上正常顯示,建議大家始終使用sp作為文字大小的單位,將dip作為其他元素的單位。當然,也可以考慮使用矢量圖形,而不是用點陣圖.
dp是與密度無關,sp除了與密度無關外,還與scale無關。
如果屏幕密度為160,這時dp和sp和px是一樣的。1dp=1sp=1px,但如果使用px作單位,如果屏幕大小不變(假設還是3.2寸),而屏幕密度變成了320。
那麼原來TextView的寬度設成160px,在密度為320的3.2寸屏幕里看要比在密度為160的3.2寸屏幕上看短了一半。
但如果設置成160dp或160sp的話。系統會自動將width屬性值設置成320px的。
也就是160 * 320 / 160。其中320 / 160可稱為密度比例因子。也就是說,如果使用dp和sp,系統會根據屏幕密度的變化自動進行轉換

㈣ Android布局權重是怎樣的

1. 分配規則

【最後控制項的寬度 = 控制項本身寬度 + 權重比例分配寬度 】
2. 計算步驟

第一步 【計算剩餘空間值】:將屏幕寬度(或高度)減去該水平(或豎直)排列之間所有控制項的寬度(或高度),得出剩餘空間值。

第二步 【權重比例分配剩餘空間值】:根據你所設置的權重值,按照比例分配給控制項(剩餘空間值為負數也照樣分配)。
3. 套用公式
例:如水平方向上的線性布局LinearLayout控制項L中,包含兩個水平佔用空間的控制項A,B。
L控制項:L控制項寬度layout_width = width_l A控制項:a控制項寬度layout_width = width_a a控制項權重layout_weight = weight_a
B控制項:b控制項寬度layout_width = width_b b控制項權重layout_weight = weight_b

L中子控制項最終佔用寬度 = 原有寬度(width_a)+剩餘空間分配量A所佔寬度 = width_a + (width_l-width_a-width_b)*weight_a/(weight_a+weight_b)
B所佔寬度 = width_b + (width_l-width_a-width_b)*weight_b/(weight_a+weight_b)

㈤ Android布局,用LinearLayout做如下計算器界面,可按屏幕大小變換比例

在4.0以前版本中一共有五種布局,都是ViewGroup的子類。分別是AbsoluteLayout、RelativeLayout、LinearLayout、FrameLayout、TableLayout。而TableLayout是LinearLayout的子類。(中文分別是:絕對布局、相對布局、線性布局、幀布局、表格布局)。在2.2操作系統中將AbsoluteLayout過期。而目前FrameLayout、TableLayout也逐漸少用。在4.0之後又新增GridLayout。(GridLayout最經典的案例是計算器界面)總之,Android中一共有六種布局。目前推薦使用RelativeLayout、LinearLayout、GridLayout三種布局。一般簡單的布局就用LinearLayout,復雜點的用RelativeLayout(可以防止多層嵌套),像FrameLayout,裡面的控制項是重疊的,AbsoluteLayout裡面控制項位置是絕對的,在屏幕適配方面就不行了。

㈥ android 表格布局怎樣設置某列比例

你好,看了你的布局,大概分成3部分

,第一部分是標題,第二部分是薯掘左邊的部分,

第三部分是右側部分,那麼問題就頌手敬分3個布局解決就好: ----------------這部分寫左側的內容-------------------- ---------------- 這野慎部分寫右側的內容--------------...

㈦ Android布局文件設置TableLayout某一列寬度為屏幕寬度的30%

我給你一個思路吧:


<TableLayout

android:width=0dp;


android:weight=7;/>

<LinearLayout

android:width=0dp;


android:weight=3;/>


這樣就會有一個tablelayout和一個LinearLayout,tablelayout寬度占總寬度的30%,線性布局佔70%

權重做的,具體代碼這樣:

<TableLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="horizontal" >


<TableRow

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_orange_light" >

</TableRow>


<TableRow

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/background_light" >

</TableRow>


<TableRow

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="3"

android:background="@android:color/darker_gray" >

</TableRow>


<TableRow

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_blue_bright" >

</TableRow>


<TableRow

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_green_dark" >

</TableRow>


<TableRow

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_orange_dark" >

</TableRow>


<TableRow

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_purple" >

</TableRow>


<TableRow

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_red_dark" >

</TableRow>

</TableLayout>

實現的效果就是:

閱讀全文

與android布局按比例相關的資料

熱點內容
菜譜大全pdf 瀏覽:313
怎麼在風雲pdf上把文件夾匯總 瀏覽:876
java創建子類 瀏覽:529
安卓實況怎麼退出渠道服登錄 瀏覽:106
汽車12v電壓縮機 瀏覽:417
樂圖java 瀏覽:788
命令與征服注冊表 瀏覽:323
聽課app如何保存下來視頻 瀏覽:450
phpiconv支持 瀏覽:92
什麼app可以借到錢 瀏覽:16
單片機中rn是什麼元件縮寫 瀏覽:836
office插件pdf 瀏覽:187
上古卷軸dat1放哪個文件夾 瀏覽:775
文件夾左下角離線狀態 瀏覽:96
手機貼吧app哪個好 瀏覽:583
java文件讀取中文亂碼 瀏覽:515
php個人網站模板下載 瀏覽:491
毒app哪個耐克鑒定師好 瀏覽:742
化度寺碑pdf 瀏覽:323
導航安卓機如何下載騰訊視頻 瀏覽:100