我想在运行时打印所有drawable的大小。因此,如果我在hdpi
设备上,那么我可以打印hdpi
drawables的大小但是如何访问,也可以说mdpi
和xhdpi
?我可以使用以下代码访问所有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 */
}
答案 0 :(得分:3)
好的我找到了,基本上你明确地要求这样的特定密度可绘制:
Drawable drawable = resources.getDrawableForDensity(id, DisplayMetrics.DENSITY_XHIGH);
或者最好是这个版本
Drawable drawable = resources.getDrawableForDensity(id, DisplayMetrics.DENSITY_XHIGH, theme);