2012-02-13 44 views
9

我想知道在運行來自ldpi,mdpi,hdpi或xhdpi的應用程序時使用哪種可繪製資源。如何找出使用哪種可用資源?

+0

[看一看這篇文章(http://stackoverflow.com/a/4766229/593709) – 2012-02-13 07:06:47

+0

我結束了創建一個應用程序前段時間:https://play.google。 COM /存儲/應用程序/詳細信息?ID = com.roysolberg.android.developertools – 2012-09-11 07:42:02

回答

7

描述here,並隨後確定通過比較這個列表的結果在運行時正在使用哪些資源應該能夠得到您的設備的顯示屬性:

  • LDPI:低密度屏幕;大約120dpi。
  • mdpi:中等密度(在傳統HVGA)屏幕上;大約160dpi。
  • hdpi:高密度屏幕;大約240dpi。
  • xhdpi:超高密度屏幕;大約320dpi。在API級別8中添加
  • nodpi:這可用於您不希望縮放以匹配設備密度的位圖資源。
  • tvdpi:屏幕介於mdpi和hdpi之間;大約213dpi。這不被視爲「主要」密度組。它主要用於電視,大多數應用程序都不需要它 - 爲大多數應用程序提供mdpi和hdpi資源已足夠,系統會根據需要對其進行擴展。這個限定詞與API級別13

介紹,從這些信息可以推斷出以下,這也可能是相關的提問:

有一個3:4:6:8比例四個主要密度之間的比率 (忽略tvdpi密度)。因此,ldpi中的9x9位圖是012xmdpi中的12x12,hdpi中是18x18,xhdpi中是24x24。

1

這不是一個確切的答案,但你在採取一看:http://developer.android.com/guide/practices/screens_support.html

LDPI:資源用於低密度(LDPI)屏幕(〜120DPI)
MDPI:資源用於中密度( MDPI)屏幕(〜160dpi)
華電國際:資源用於高密度(華電國際)屏幕(〜240dpi)
xhdpi:資源用於超高密度(xhdpi)屏幕(〜320dpi)

這些是一般性準則,它不會是完美的,但它是一個很好的開始。

4

我們可以通過了解設備的屏幕密度來確定這一點。

getResources().getDisplayMetrics().densityDpi 

它可以是DENSITY_LOW,DENSITY_MEDIUM或DENSITY_HIGH。

1

從佈局文件夾打開xml文件。在底部你會發現圖形佈局選項卡。在那裏你將能夠看到你的XML文件的圖形視圖。在左上角選擇您想要測試繪製的不同分辨率。它會相應刷新視圖。

0

這裏是一個示例代碼來找到它。 只需在不同的文件夾中放入一些不同的可繪圖,並檢查設備自動獲取哪個圖像。

http://droidschools.com/archives/63

3

你必須先得到你的設備的密度。

int density= getResources().getDisplayMetrics().densityDpi; 

switch(density) 
{ 
case DisplayMetrics.DENSITY_LOW: 
    Toast.makeText(context, "LDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_MEDIUM: 
    Toast.makeText(context, "MDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_HIGH: 
    Toast.makeText(context, "HDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_XHIGH: 
    Toast.makeText(context, "XHDPI", Toast.LENGTH_SHORT).show(); 
    break; 
} 
相關問題