2013-08-06 114 views

回答

1

都會響起的DisplayMetrics

我寫這顯示當前使用的繪製目錄的名稱設備:

private String getDisplayDirectory() { 
    String prefix = "drawable"; 
    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    if (metrics.densityDpi == DisplayMetrics.DENSITY_LOW) 
     return prefix+"-ldpi"; 
    if (metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM) 
     return prefix+"-mdpi"; 
    if (metrics.densityDpi == DisplayMetrics.DENSITY_TV) 
     return prefix+"-tv"; 
    if (metrics.densityDpi == DisplayMetrics.DENSITY_HIGH) 
     return prefix+"-hdpi"; 
    if (metrics.densityDpi == DisplayMetrics.DENSITY_XHIGH) 
     return prefix+"-xhdpi"; 
    if (metrics.densityDpi == DisplayMetrics.DENSITY_XXHIGH) 
     return prefix+"-xxhdpi"; 
    if (metrics.densityDpi == DisplayMetrics.DENSITY_XXXHIGH) 
     return prefix+"-xxxhdpi"; 
    return prefix; 
} 
1

您應該可以使用修改的DisplayMetrics對象創建Resources對象,如this question about localization所示。


重讀你的問題,如果你只希望得到屏幕的類型,而不是Ressources本身,你可以填寫使用getWindowManager().getDefaultDisplay().getMetrics(metrics);DisplayMetrics對象如圖所示的連接例子,然後評估density實例變量。

0

您可以使用DisplayMetrics來確定。

DisplayMetrics metrics = getResources().getDisplayMetrics() 
switch (metrics.densityDpi) { 
    case DisplayMetrics.DENSITY_HIGH: { 
     // Do your stuff if density is high 
     break; 
    } 
    case DisplayMetrics.DENSITY_MEDIUM: { 
     // Do your stuff if density is medium 
     break; 
    } 
    ... 
} 

另外,您還可以使用以下方法來獲得指標:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
相關問題