Получить рисовать для различной плотности экрана во время выполнения
Я хочу напечатать размеры всех чертежей во время выполнения. Так что если я нахожусь на hdpi
Устройство тогда я могу напечатать размер hdpi
но как получить доступ, скажем так mdpi
а также xhdpi
также? Я могу получить доступ ко всем идентификаторам ресурсов drawables с помощью следующего кода:
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 ответ
Хорошо, я нашел это, в основном вы явно запрашиваете конкретную плотность, которую можно нарисовать следующим образом:
Drawable drawable = resources.getDrawableForDensity(id, DisplayMetrics.DENSITY_XHIGH);
или желательно эту версию
Drawable drawable = resources.getDrawableForDensity(id, DisplayMetrics.DENSITY_XHIGH, theme);