Использовать xxhdpi на устройстве xhdpi - PullRequest
0 голосов
/ 01 мая 2019

Я создал свое приложение для поддержки экранов от hdpi до xxxdpi, и все работало идеально. Изображения были показаны так, как они должны были. Но теперь у меня проблема с Xiaomi Mi Max 3. У него 6,9 "дисплей с разрешением всего 1080x2160, что дает ~ 350 точек на дюйм. Это относится к категории xhdpi (обычно 720p экранов) и теперь мои изображения меньше, чем должны быть. Есть ли способ принудительно использовать папку drawable-xxhdpi с кодом?

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Хорошо, благодаря госпоже Абдулле я нашел решение. Вы не можете выбрать, какую папку ресурсов использовать, но вы можете использовать определенный ресурс из папки с методом getDrawableForDensity(). Вот что я сделал:

int width = Resources.getSystem().getDisplayMetrics().widthPixels;
int dpi = getResources().getDisplayMetrics().densityDpi;
int imageID = R.drawable.YOURIMAGE;
if (width > VALUE && dpi < VALUE) {
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
        Drawable drawable = getResources().getDrawableForDensity(imageId, DisplayMetrics.DENSITY_XXHIGH);
//you will probably need to adjust width & height of your ImageView, but since the image
//will keep its aspect ratio, you only have to change width | heigth
        YOURIMAGEVIEW.setAdjustViewBounds(true);
        YOURIMAGEVIEW.setMaxWidth(VALUE);
        YOURIMAGEVIEW.setImageDrawable(drawable);
   }
}
0 голосов
/ 01 мая 2019

просто создайте другой файл, например, как:

drawable-xxxdpi / example.png

drawable-anydpi-v21 / example.xml

и свяжите свой файл изображения сAnyDpi XML-код для поддержки любого размера экрана.см. дополнительную информацию на официальном веб-сайте или посетите В чем разница между -anydpi и -nodpi?

...