在运行时获取不同屏幕密度的绘图

时间:2015-05-15 07:41:37

标签: android android-drawable android-resources android-resolution

我想在运行时打印所有drawable的大小。因此,如果我在hdpi设备上,那么我可以打印hdpi drawables的大小但是如何访问,也可以说mdpixhdpi?我可以使用以下代码访问所有drawables资源ID:

final Class<R.drawable> c = R.drawable.class;
final Field[] fields = c.getDeclaredFields();

for (int i = 0, max = fields.length; i < max; i++) {
    final int resourceId;
    try {
        resourceId = fields[i].getInt(drawableResources);
    } catch (Exception e) {
        continue;
    }
    /* make use of resourceId for accessing Drawables here */
}

1 个答案:

答案 0 :(得分:3)

好的我找到了,基本上你明确地要求这样的特定密度可绘制:

Drawable drawable = resources.getDrawableForDensity(id, DisplayMetrics.DENSITY_XHIGH);

或者最好是这个版本

Drawable drawable = resources.getDrawableForDensity(id, DisplayMetrics.DENSITY_XHIGH, theme);