日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android多屏幕适配资源生成,android – 多屏幕适配相关

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android多屏幕适配资源生成,android – 多屏幕适配相关 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、基本概念

屏幕大小(screen size)?– 屏幕的實際大小,用屏幕對角線長度來衡量(比如3.4寸,3.8寸)。android把屏幕分為以下4種:small,normal,large,extra large。

怎么判斷?

屏幕密度(Screen Density) -?一塊實際的屏幕區域有多少個像素,一般用dpi衡量(每英寸有多少個點)。相比起medium、high屏幕密度的設備,在一塊確定大小的屏幕區域l密度為low的屏幕擁有的像素更少。android把屏幕密度分為4種:low,medium,high,extra high。

如何判斷是ldpi,mdpi,hdpi?

方向(orientation) -?屏幕方向分為landscape(橫屏)和portrait(豎屏)。

分辨率(Resolution)?-??屏幕上的總實際像素數。對屏幕進行適配時,一般不關注它的分辨率,只關注它的屏幕大小和密度。

與密度無關的像素(Density-independent pixel,dp或dip)?-??為了保證你的UI適合不同的屏幕密度,建議你采用dp來定義程序UI。

它的計算方法為:px = dp * (dpi / 160)

sp(scale-independent pixel)

如何分辨一個屏幕是ldpi、mdpi、hdpi的方法,見下圖

計算屏幕密度

2、怎樣適配多種屏幕

a.在manifest里定義你的程序支持的屏幕類型,相應代碼如下:

android:smallScreens=["true" | "false"]?? //是否支持小屏

android:normalScreens=["true" | "false"]? //是否支持中屏

android:largeScreens=["true" | "false"]?? //是否支持大屏

android:xlargeScreens=["true" | "false"] ?//是否支持超大屏

android:anyDensity=["true" | "false"]??? //是否支持多種不同密度的屏幕

android:requiresSmallestWidthDp=”integer”

android:compatibleWidthLimitDp=”integer”

android:largestWidthLimitDp=”integer”/>

b.對不同大小的屏幕提供不同的layout。

比如,如果需要對大小為large的屏幕提供支持,需要在res目錄下新建一個文件夾layout-large/并提供layout。當然,也可以在res目錄下建立layout-port和layout-land兩個目錄,里面分別放置豎屏和橫屏兩種布局文件,以適應對橫屏豎屏自動切換。

c.對不同密度的屏幕提供不同的圖片。

應盡量使用點9格式的圖片,如需對密度為low的屏幕提供合適的圖片,需新建文件夾drawable-ldpi/,并放入合適大小的圖片。相應的,medium對應drawable-mdpi /,high對應drawable-hdpi/,extra high對應drawable-xhdpi/。

圖片大小的確定:low:medium:high:extra high比例為3:4:6:8。舉例來說,對于中等密度(medium)的屏幕你的圖片像素大小為48×48,那么低密度(low)屏幕的圖片大小應為36×36,高(high)的為72×72,extra high為96×96。

不同密度的屏幕對應的圖片比例

3、多屏幕適配的4條黃金原則

a.在layout文件中設置控件尺寸時應采用wrap_content,fill_parent和dp。

具體來說,設置view的屬性android:layout_width和android:layout_height的值時,wrap_content,fill_parent或dp比pix更好。相應地,為了使文字大小更好的適應屏幕應該使用sp來定義文字大小。

b.在程序的代碼中不要出現具體的像素值。

為了使代碼簡單,android內部使用pix為單位表示控件的尺寸,但這是基于當前屏幕基礎上的。為了適應多種屏幕,android建議開發者不要使用具體的像素來表示控件尺寸。

c.不要使用AbsoluteLayout(android1.5已廢棄)?。相應地,應使用RelativeLayout。

d.對不同的屏幕提供合適大小的圖片。見上面第2部分。

4、需要注意的地方

以上設置適用于android3.2以下的版本。(本人目前開發是在android2.2上,這部分以后再補充)

5、怎樣測試你的程序是否支持多屏幕適配

一般使用AVD Manager創建多個不同大小的模擬器,如下圖

問題:

測試時,發現應用在不同的顯示器上顯示效果不同(部分文本不能顯示完全),自然想到屏幕適配的問題。

按照思路整理如下:

(一) 幾個概念

1,?Screen size屏幕的尺寸,即對角線長度(單位inch-英寸)

2, Screen density屏幕密度,即單位長度像素點數(pots/inches)

3, Resolution 分辨率,即屏幕的總像素點數(width * height)

4, Density-independent pixel (dp)獨立像素密度。標準是160dip.即1dp對應1個pixel,計算公式如:px = dp * (dpi / 160),屏幕密度越大,1dp對應 的像素點越多。

(二) 屏幕的分類(size & density)

1, 以總像素數分,文本的size等都要改,如下圖所示

每一個分類都有其最小分辨率,如下,可根據分辨率劃分種類:

2, 以屏幕密度分,提供不同的圖片如下圖所示

Note1:匹配以上面兩種為參考。

Note2:還有專為水平(landscape)和豎直(portrait)兩種,使用的少,在此不贅述。

(三) Android尋找最佳資源原理

1, 排除與設備設置不符合的資源

2, 根據限定詞(qualifier)的優先級,按照順序查找

3, 在限定詞下,是否存在資源路徑

4, 排除不包含在限定詞中的資源路徑

5, ?繼續執行不同的限定詞查找,直到找到相應的資源

如下圖所示:

(四) 項目步驟:

1, manufest中配置

android:anyDensity="true"

android:largeScreens="true"

android:normalScreens="true"

android:smallScreens="true"

android:xlargeScreens="true"?/>

2, 新建對應的資源文件夾

A, Layout

例如,我現在有三個顯示器分辨率:

分別為1280*720,1024*768,1200*690

根據以上最低分辨率的要求,分為xlarge和large兩類,新建兩個文件夾,如下:

如下圖所示:

B, Drawable

如下圖所示:

在drawable中,以mdpi為標準(即160dpi)。比例保持為3:4:5:6,如下圖所示:

總結

以上是生活随笔為你收集整理的android多屏幕适配资源生成,android – 多屏幕适配相关的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。