色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

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

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

為什么需要屏幕適配

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

Android中的顯示單位

常見的定義

● 屏幕尺寸

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

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

● 屏幕分辨率

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

● 屏幕像素密度

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

● dp、dip、dpi、sp、px

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

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

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

● dip與px之間的換算公式

a. 2N + 2N/2 = PX

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

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

屏幕適配方案

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

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

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

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

3.使用.9圖

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

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

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

4.支持各種屏幕密度

使用非密度制約像素

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

5.提供備用位圖

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

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

xhdpi:2.0

hdpi:1.5

mdpi:1.0

ldpi:0.75

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

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

這樣一來,只要我們引用 @drawable/id,系統都能根據相應屏幕的 dpi 選取合適的位圖。

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

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

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

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

回到頂部

主站蜘蛛池模板: 麻豆国产网站 | 女人高潮特级毛片 | 亚洲熟妇久久国内精品 | 18禁黄网站禁片无遮挡观看 | 涩涩涩久久久成人精品 | 亚洲中文无码永久免弗 | 一区二区三区精密机械 | 国产精品人人妻人色五月 | 国产XXX69麻豆国语对白 | 亚洲精品国产9999久久久久 | 五月婷婷俺也去开心 | 欧美老少配性行为 | 性色AV一区二区三区无码 | 少妇与黑人一二三区无码 | 亚洲AV 日韩 国产 有码 | 未满十八18禁止免费网站 | 日韩精品无码久久一区二区三 | 大又大粗又爽又黄少妇毛片 | 麻花传剧原创MV在线观看 | 久久男人的天堂 | 久久久久青草线综合超碰 | 日本卡一卡二卡乱码三卡四码 | 国产成人涩涩涩视频 | 亚洲中文字幕婷婷在线 | sese成人网| 一本色道久久99一综合 | 人妻无码中字在线a | 五月丁香六月狠狠爱综合 | 女人被爽到高潮视频免费国产 | 精品自拍视频在线观看 | 99精品久久久久中文字幕 | 粗一硬一长一进一爽一a片 国产激情在线观看 | 四色永久网站在线观看 | 成全视频在线观看免费高清在线观看 | 日本毛毛片 | 又大又黄又粗又爽的免费视频 | 直人实女处被破www视频 | free性video西欧极品 | 中文字幕亚洲制服在线看 | 久久久久影院色老大2020 | 一级大片一级一大片 |