色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號

回到頂部

主站蜘蛛池模板: 噜噜吧噜吧噜吧噜噜网A | 久久久久久久久久成人 | 日本爽快片视频 | 嫩草研究院在线观看入口 | 女性自慰网站免费观看w | 免费视频a级毛片免费视频 亚洲AV无码一区二区三区网址 | 中文字幕无码第1页 | 大地资源中文二页在线观看 | 亚洲色成人一区二区三区 | 在线免费看av不卡 | 被绑在机器上强行高潮的视频 | 女人爽到喷水的视频大全 | 中文字幕国产区 | 精品人妻无码专区中文字幕 | 免费情侣作爱视频 | 在线天堂中文最新版www | 蜜桃视频精品 | 麻豆专媒体一区二区 | 怡红院成免费人视频 | 久久产精品一区二区三区污欧美 | 麻豆国产在线精品国偷产拍 | 日日摸夜夜爽无码毛片精选 | 无码专区无码专区视频网站 | 亚洲精品无码精品MV在线观看 | 国产日产欧洲无码视频无遮挡 | 黄色的视频在线观看 | 久久精品伊人一区二区三区 | 日韩做A爰片久久毛片A片 | 波多野结衣AV最新作品在线观看 | 在线精品一卡乱码免费 | 无码人妻丰满熟妇区BBBBXXXX | 内地性生生活影视大全 | 国产亚洲精品精华液 | 三级特黄特色在线播放 | 一边摸一边桶一边脱免费视频 | 福利视频一二三在线观看 | 国产成人无码aⅴ片在线观看导航 | 欧美狂野乱码一二三四区 | 国产v视频在线亚洲视频 | 一二三四在线观看免费中文在线观看 | 国产一级a一级a爱片免费 |