Android 元件長寬比重設定總結

2021-08-27 17:00:04 字數 1699 閱讀 5531

在android中的全部元件都有android:layout_height,android:layout_width,android:layout_weight

這三個屬性,所以今天寫了這篇總結,總結關於元件布局的問題。

各個屬性可以設定的值:

android:layout_height:wrap_content,match_parent(fill_parent),px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters)

android:layout_width:wrap_content,match_parent(fill_parent),px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters)

android:layout_weight:整數

針對3種情況展開討論:

假想乙個列表框,需要放置3個元件,每個元件的長度可以是需要變化的(如textview隨文字的長度變化),或者是長度固定的(如imageview元件)。

每乙個格仔裡放一種元件,所以有8種情況,針對這8種情況分別對這3個元件進行這3個屬性的配置:

(在同乙個linearlayout如果不設比重則linearlayout會先滿足第乙個元件的長和寬,不管後面幾個元件是否還有顯示的空間)

變變變:

變變不:(image寬度不在比重分配的尺寸之中)

變不變:

變不不:

不不不:

不不變:

不變不:

不變變:

細心的讀者可能已經明白其中的規律!

在layout_width設定為fill_parent的時候,layout_weight所代表的是你的控制項要優先盡可能的大,但這個大是有限度的,即fill_parent.

在layout_width設定為wrap_content的時候,layout_weight所代表的是你的控制項要優先盡可能的小,但這個小是有限度的,即wrap_content.

layout_height 同 layout_width.

水平線性按比例分配android:layout_weight="1"時也可將元件的android:layout_width="0dp",效果同android:layout_width="wrap_content",按正比例分配除去固定分配掉的尺寸所剩餘的尺寸。

當view的width,height為wrap_content或者0dp/px/sp時,若設定了weight,那麼layout就會從剩餘的未確定的layout中,根據weight的總和,也就是weightsum來計算需要為這樣的view設定多少長寬。

width=leftwidth*weight/weightsum;

height=leftheight*weight/weightsum;

另外weight的計算和布局,在linearlayout中onlayout和onmeasure函式。

關於Android布局weight權重設計

weight 以前一直是按預設的來設計的,或者自己定義16dp邊距類似。現在要學習權重weight的概念。今天我們的目標是做到下面這個效果,主要是為了學習weight 布局 兩個子元件依託於主linearlayout存在。此時看到button和checkbox都是weight都是以1 1來分配lin...

Android元件介紹

1 所有的元件都是android.view.view中的子類。當有些元件的屬性在本元件內部找不到時,可以到父類中查詢。元件的學習過程就是查詢文件的過程。2.textview 文字元件 靜態的顯示文字。px表示象素。設定文字大小時,必須要帶單位。3.button textview的子類。是特殊的文字元...

Android布局元件

在ui設計中,除了要清除控制項的作用和介面之外,還需要熟悉控制項的布局,布局規定了介面中元素之間的排列方式。android提供了許多種布局,包括linearlayout,relativelayout,tablelayout,absolutelayout等,下面重點介紹這幾種布局方式 linearla...