国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Android屏幕適配

Android屏幕適配 時間:2018-09-27      來源:未知

為什么需要屏幕適配

Android是一個開放的系統(tǒng),全球各種用戶、手機企業(yè)、OEM廠商都可以對Android系統(tǒng)進行定制,這就導致了Android系統(tǒng)的碎片化問題。其中對于開發(fā)者來講工作中常碰到的就是屏幕碎片化,那么如何解決屏幕碎片化問題,實現(xiàn)優(yōu)的屏幕適配,是每個Android開發(fā)者所要面臨的問題。

Android中的顯示單位

常見的定義

● 屏幕尺寸

屏幕尺寸指屏幕的對角線的長度,單位是英寸,1英寸=2.54厘米

比如常見的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等

● 屏幕分辨率

屏幕分辨率是指在橫縱向上的像素點數(shù),單位是px,1px=1個像素點。一般以縱向像素*橫向像素,如1960*1080。

● 屏幕像素密度

屏幕像素密度是指每英寸上的像素點數(shù),單位是dpi,即“dot per inch”的縮寫。屏幕像素密度與屏幕尺寸和屏幕分辨率有關(guān),在單一變化條件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。

● dp、dip、dpi、sp、px

px:我們應(yīng)該是比較熟悉的,前面的分辨率就是用的像素為單位,大多數(shù)情況下,比如UI設(shè)計、Android原生API都會以px作為統(tǒng)一的計量單位,像是獲取屏幕寬高等。

dip和dp:是一個意思,都是Density Independent Pixels的縮寫,即密度無關(guān)像素,上面我們說過,dpi是屏幕像素密度,假如一英寸里面有160個像素,這個屏幕的像素密度就是160dpi,那么在這種情況下,dp和px如何換算呢?在Android中,規(guī)定以160dpi為基準,1dip=1px,如果密度是320dpi,則1dip=2px,以此類推。

sp:即scale-independent pixels,與dp類似,但是可以根據(jù)文字大小首選項進行放縮,是設(shè)置字體大小的御用單位。

● dip與px之間的換算公式

a. 2N + 2N/2 = PX

b.(2N-1)+ 2N/2 = PX

注:偶數(shù)值dip 的1.5倍等于相對應(yīng)的px值,偶數(shù)值的間距與奇數(shù)元素設(shè)置居中對齊的時候會有1px的誤差。 

屏幕適配方案

1.充分利用”wrap_content” 、”match_parent”以及“weight”

通常我們會在布局視圖中使用”wrap_content”和”match_parent”來確定它的寬和高。如果你使用了”wrap_content”,相應(yīng)視圖的寬和高就會被設(shè)定成剛好能夠包含視圖中內(nèi)容的小值。而如果你使用了”match_parent”,就會讓視圖的寬和高延伸至充滿整個父布局。

2.多使用相對布局RelativeLayout,少使用絕對布局

如果你需要讓子視圖能夠有更多的排列方式,而不是簡單地排成一行或一列,使用RelativeLayout將會是更好的解決方案。RelativeLayout允許布局的子控件之間使用相對定位的方式控制控件的位置,比如你可以讓一個子視圖居屏幕左側(cè)對齊,讓另一個子視圖居屏幕右側(cè)對齊。

3.使用.9圖

“點九”是andriod平臺的應(yīng)用軟件開發(fā)里的一種特殊的圖片形式,文件擴展名為:.9.png

智能手機中有自動橫屏的功能,同一幅界面會在隨著手機(或平板電腦)中的方向傳感器的參數(shù)不同而改變顯示的方向,在界面改變方向后,界面上的圖形會因為長寬的變化而產(chǎn)生拉伸,造成圖形的失真變形。

我們都知道android平臺有多種不同的分辨率,很多控件的切圖文件在被放大拉伸后,邊角會模糊失真。OK,在android平臺下使用點九PNG技術(shù),可以將圖片橫向和縱向同時進行拉伸,以實現(xiàn)在多分辨率下的完美顯示效果。

4.支持各種屏幕密度

使用非密度制約像素

由于各種屏幕的像素密度都有所不同,因此相同數(shù)量的像素在不同設(shè)備上的實際大小也有所差異,這樣使用像素定義布局尺寸就會產(chǎn)生問題。因此,請務(wù)必使用 dp 或 sp 單位指定尺寸。dp 是一種非密度制約像素,其尺寸與 160 dpi 像素的實際尺寸相同。sp 也是一種基本單位,但它可根據(jù)用戶的偏好文字大小進行調(diào)整(即尺度獨立性像素),因此我們應(yīng)將該測量單位用于定義文字大小。

5.提供備用位圖

由于 Android 可在具有各種屏幕密度的設(shè)備上運行,因此我們提供的位圖資源應(yīng)始終可以滿足各類普遍密度范圍的要求:低密度、中等密度、高密度以及超高密度。這將有助于我們的圖片在所有屏幕密度上都能得到出色的質(zhì)量和效果。

要生成這些圖片,我們應(yīng)先提取矢量格式的原始資源,然后根據(jù)以下尺寸范圍針對各密度生成相應(yīng)的圖片。

xhdpi:2.0

hdpi:1.5

mdpi:1.0

ldpi:0.75

也就是說,如果我們?yōu)?xhdpi 設(shè)備生成了 200x200 px尺寸的圖片,就應(yīng)該使用同一資源為 hdpi、mdpi 和 ldpi 設(shè)備分別生成 150x150、100x100 和 75x75 尺寸的圖片。

然后,將生成的圖片文件放在 res/ 下的相應(yīng)子目錄中(mdpi、hdpi、xhdpi、xxhdpi),系統(tǒng)就會根據(jù)運行您應(yīng)用的設(shè)備的屏幕密度自動選擇合適的圖片。

這樣一來,只要我們引用 @drawable/id,系統(tǒng)都能根據(jù)相應(yīng)屏幕的 dpi 選取合適的位圖。

但是還有個問題需要注意下,如果是.9圖或者是不需要多個分辨率的圖片,就放在drawable文件夾即可,對應(yīng)分辨率的圖片要正確的放在合適的文件夾,否則會造成圖片拉伸等問題。

上一篇:Android硬件抽象層(HAL)深入剖析(三)

下一篇:經(jīng)典嵌入式面試題集合,總有一個會幫到你

熱點文章推薦
華清學員就業(yè)榜單
高薪學員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權(quán)所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部