Получить рисовать для различной плотности экрана во время выполнения

Я хочу напечатать размеры всех чертежей во время выполнения. Так что если я нахожусь на 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);
Другие вопросы по тегам