2013-08-06 77 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); 
相关问题