Day2 鴻蒙的Text,相較於Android的TextView看看控件通用屬性有什麼不同

鴻蒙開發 在鴻蒙的DevEco-Studio中新建工程模板的控件Text屬性以下:android

ohos:id="$+id:text_helloworld"
ohos:height="match_content"
ohos:width="match_content"
ohos:background_element="$graphic:background_ability_main"
ohos:layout_alignment="horizontal_center"
ohos:text="Hello World"
ohos:text_size="50"

一、id(通用屬性)windows

id,控件的惟一標識。佈局

【Android】字體

@+id:android:id="@+id/名稱" 表示建立該控件的idcode

@id:android:id="@id/名稱"   表示引用其餘控件的idblog

【鴻蒙】圖片

@+id:ohos:id="$+id:名稱"    表示建立該控件的idip

@id:未出現該用法element

二、height、width(通用屬性)開發

height,佈局文件的一個屬性。

【Android】

@layout_height:android:layout_height="屬性/數值"    表示該控件的高度

@layout_width:android:layout_width="屬性/數值"      表示該控件的高度

*屬性列表:

wrap_content:是layout_width和layout_height的屬性值之一,表示和自身內容同樣的長度。

match_parent:是layout_width和layout_height的屬性值之一,表示和父組件同樣的長度。

(1)和wrap_content配合:

先按照內容的多少去設定空間大小,而後按照權重的比例分配剩餘控件。即當控件沒有內容或內容未超出按照權重比例分配的空間時,就按照layout_weight設定的權重比例分配空間,當內容大小超過這樣分配的空間時,控件就會擴張,其實就是按照wrap_content來佔用空間了,剩下的空間仍然按照本段定理來分配。

(2)和match_parent配合:

空間計算公式:空間大小=父容器大小+權重比例剩餘空間大小,好比兩個同級控件A,B都是match_parent,A的layout_weight爲1,B的layout_weight爲2(總空間爲1match_parent,所需空間爲2match_parent,剩餘空間爲二者之差),空間A=1match_parent+1/(1+2)(1match_parent-2match_parent)=2/3match_parent,同理,空間B=1/3match_parent。這個現象和正常狀況有些相反,可是能夠有效保證空間分配到的比例固定,不會被內容撐大。

(3)和0dp配合:

將layout_weight或者layout_height設爲0dp,將直接按照layout_weight權重的比例分配空間,且不會被內容撐大。

*數值列表

px、dp、dip、sp、mm、in、pt

(1)px:

即像素,1px表明屏幕上一個物理的像素點;

px單位不被建議使用,由於一樣100px的圖片,在不一樣手機上顯示的實際大小可能不一樣。

偶爾用到px的狀況,是須要畫1像素表格線或陰影線的時候,用其餘單位如dp會顯得模糊。

(2)dp: 這個是最經常使用但也最難理解的尺寸單位。它與「像素密度」密切相關,因此首先咱們解釋一下什麼是像素密度。假設有一部手機,屏幕的物理尺寸爲1.5英寸x2英寸,屏幕分辨率爲240x320,則咱們能夠計算出在這部手機的屏幕上,每英寸包含的像素點的數量爲240/1.5=160dpi(橫向)或320/2=160dpi(縱向),160dpi就是這部手機的像素密度,像素密度的單位dpi是Dots Per Inch的縮寫,即每英寸像素數量。橫向和縱向的這個值都是相同的,緣由是大部分手機屏幕使用正方形的像素點。

不一樣的手機/平板可能具備不一樣的像素密度,例如同爲4寸手機,有480x320分辨率的也有800x480分辨率的,前者的像素密度就比較低。Android系統定義了四種像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它們對應的dp到px的係數分別爲0.7五、一、1.5和2,這個係數乘以dp長度就是像素數。例如界面上有一個長度爲「80dp」的圖片,那麼它在240dpi的手機上實際顯示爲80x1.5=120px,在320dpi的手機上實際顯示爲80x2=160px。若是你拿這兩部手機放在一塊兒對比,會發現這個圖片的物理尺寸「差很少」,這就是使用dp做爲單位的效果,見下圖。

是否是全部android手機的屏幕寬度用dp衡量都是固定值(例如320dp)呢?答案是否認的,若是寫一個程序畫寬度等於320dp的橫線,在不一樣手機上運行,會發如今有些手機上橫線比手機屏幕短,有些則比屏幕長,在平板上與手機上相比差異則更加明顯。

(3)dip:

與dp徹底相同,只是名字不一樣而已。在早期的Android版本里多使用dip,後來爲了與sp統一就建議使用dp這個名字了。

(4)sp:

與縮放無關的抽象像素(Scale-independent Pixel)。sp和dp很相似但惟一的區別是,Android系統容許用戶自定義文字尺寸大小(小、正常、大、超大等等),當文字尺寸是「正常」時1sp=1dp=0.00625英寸,而當文字尺寸是「大」或「超大」時,1sp>1dp=0.00625英寸。相似咱們在windows裏調整字體尺寸之後的效果——窗口大小不變,只有文字大小改變。

(5)mm:(比較少用到)

即毫米;

(6)in:(比較少用到)

即英寸,1英寸=2.54釐米(約);

(7)pt:(比較少用到)

1pt=1/72英寸=0.035釐米;

最佳實踐,文字的尺寸一概用sp單位,非文字的尺寸一概使用dp單位。例如textSize="16sp"、layout_width="60dp";偶爾須要使用px單位,例如須要在屏幕上畫一條細的分隔線時:

layout_width="match_parent" layout_height="1px"

【鴻蒙】

@height:ohos:height="屬性/數值"    表示該控件的高度

@width:ohos:width="屬性/數值"     表示該控件的高度

*屬性列表:

match_content:是width和height的屬性值之一,表示和自身內容同樣的長度。

match_parent:是width和height的屬性值之一,表示和父組件同樣的長度。

*數值列表(目前尚未找到文檔介紹,待後續更新):

fp、px、vp

本文由博客一文多發平臺 OpenWrite 發佈!

相關文章
相關標籤/搜索