簡體   English   中英

mdpi,hdpi,xhdpi文件夾的工作原理如何?

[英]How mdpi, hdpi, xhdpi folder works?

摘自上面的Android開發者指南鏈接:

320dp:典型的手機屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等)。
480dp:像Streak(480x800 mdpi)這樣的tweener平板電腦。
600dp:7“平板電腦(600x1024 mdpi)。
720dp:10英寸平板電腦(720x1280 mdpi,800x1280 mdpi等)

所以我在這些尺寸上獲得了設計師每英寸320像素的圖形(圖像)

480x800 hdpi

720x1280 mdpi

800x1280 mdpi

我很困惑應將哪個尺寸的圖像放在mdpi文件夾,hdpi文件夾和xhdpi文件夾中。 我想制作一個可以在大多數Android手機和平板電腦上運行的應用程序?

您可以創建不同的圖形對象,以便在不同的像素密度下使用。 Android將mdpi(160像素/英寸)視為基本密度。 因此對於mdpi設備,1 dp = 1像素。 在更高的密度下,每英寸有更多像素(hdpi為240,xhdpi為320)。 無論設備像素密度如何,Android都會嘗試使圖形圖像在屏幕上占據相同的物理尺寸。 因此,如果它找到的只是mdpi資源,並且設備是hdpi,它將按240/160 = 150%縮放圖形,並且它將使xhdpi的圖形大小加倍。

如果您不希望這種自動縮放(可能會使圖形看起來很差),您可以簡單地提供自己的圖形資源版本,以便在更高的密度下使用。 這些圖形的大小應與Android擴展mdpi資源的大小相同。

請注意,存儲在圖像文件中的像素/英寸與此無關。 這完全取決於您將圖形文件放在項目的資源目錄中的位置。 假設放置在res/drawable中的任何圖形都適合mdpi顯示,而res/drawable-mdpi中的圖形也是如此。 它在res/drawable-hdpi中找到的圖像文件被假定為適合hdpi顯示等的大小。當您的程序在特定設備上運行時,Android將首先查找與該設備的顯示密度相匹配的圖形。 如果找不到一個,而是找到一個不同的密度,它將使用它並根據上述規則自動縮放圖像。

當您請求為其提供備選方案的資源時,Android會根據當前設備配置選擇在運行時使用哪個備用資源。 為了演示Android如何選擇替代資源,假設以下可繪制目錄各自包含相同圖像的不同版本:

drawable/
drawable-en/
drawable-fr-rCA/
drawable-en-port/
drawable-en-notouch-12key/
drawable-port-ldpi/
drawable-port-notouch-12key/

並假設以下是設備配置:

Locale = en-GB 
Screen orientation = port 
Screen pixel density = hdpi 
Touchscreen type = notouch 
Primary text input method = 12key

通過將設備配置與可用的替代資源進行比較,Android從drawable-en-port中選擇drawable

系統根據以下邏輯決定使用哪些資源:

在此輸入圖像描述

參考: Android如何找到最匹配的資源

其他參考文獻: 密度獨立性提供替代資源最佳實踐

我會說你應該閱讀完整的頁面 支持多個屏幕 ,我認為沒有什么比它更好的文檔......

我對所有屏幕尺寸碎片感到困惑,但基本要點是:1。您需要在布局下創建各種文件夾以處理圖像2.圖像將存在於各種文件夾下的drawables文件夾中。 3.您應該有一個基本/布局和/ drawable文件夾,以配合非特定文件夾4.從xhdpi工作,然后縮小圖像!

特定屏幕文件夾的示例:/ layout-hdpi / layout-xhdpi / drawable-hdpi / drawable-xhdpi

據我所知:480 x 800是hdpi(舊手機,如S2,HTC Desire等)720 x 1280是xhdpi(新手機,如S3,Galaxy Nexus等)

基本上,根據手機,android將從必要的文件夾中獲取資源,如果沒有,那么它將從主'\\ layout'或'\\ drawable'文件夾中獲取。 例如,如果文件夾存在,在Galaxy Nexus上運行的應用程序將從“\\ layout-xhdpi”獲取資源。

是的,你可以制作一個應用程序,但需要創建文件夾:/ res / drawable,/ res / drawable-mdpi,/ res / drawable-hdpi並為所有屏幕尺寸添加內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM