Подтвердить что ты не робот

Изображение mdpi слишком мало для 10-дюймового планшета Android

У меня есть drawables для каждой плотности как ldpi, mdpi, hdpi и xhdpi.

Проблема: Как 10-дюймовое планшетное устройство (1280x800), так и устройство для мобильных телефонов 320x480 используют среднюю плотность. У меня есть изображение 35x35 мд/дюйм, но это изображение слишком мало для планшета, тогда как для телефона это нормально.

Я прочитал соответствующие документы. Но я думаю, я не мог понять. Есть ли в любом случае для использования изображений xhdpi в планшете, или мне интересно, как использовать большие изображения для планшета mdpi.

4b9b3361

Ответ 1

Вы должны добавить второй идентификатор large и/или xlarge в ваши папки с возможностью выгрузки. Увеличьте размер в drawable-xlarge-mdpi, пока вы не будете довольны результатом, в то время как drawable-mdpi будет того же размера, что и раньше.

Это увеличивает размер приложения, но он устранит вашу проблему.

Ответ 2

Если вы хотите достичь этого, не увеличивая размер своего приложения, есть способ позволить экрану высокой плотности и большому экрану со средней плотностью использовать один и тот же ресурс. Вам нужно поместить изображение, которое вы хотите повторно использовать в папке "drawable-nodpi". Это остановит платформу, выполняющую собственное масштабирование при ее использовании. Например, если у вас есть ресурс с именем "my_resource", если вы хотите, чтобы экран размера планшета использовал ваш ресурс xhdpi, переместите его из drawable-xhdpi и переименуйте его следующим образом:

/drawable-nodpi/my_resource_xhdpi.png

Затем в папках drawable-xhdpi и drawable-xlarge создайте файл my_resource.xml, который выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/my_resource_xhdpi">
</bitmap>

Теперь, когда вы используете @drawable/my_resource, версия xhdpi будет использоваться экранами xhdpi и экранами xlarge, и вам остается только сохранить одну версию изображения. Я использую эту технику довольно много, и она работает очень хорошо. Надеюсь, что это поможет!

Ответ 3

Они определяются как обычная практика:

Устройства

drawable-ldpi/xyz.png          low resolution devices 320x240 (now a days no phone comes with this resolution)
drawable-mdpi/xyz.png          medium resolution devices 480x320
drawable-hdpi/xyz.png          high resolution devices 800x480
drawable-xhdpi/xyz.png         Extra high resolution devices 1280*720
drawable-xxhdpi/xyz.png        Extra Extra high resolution devices 1920x1080

Таблетка:

drawable-large-mdpi/xyz.png    7" Tablet (600x1024 mdpi)
drawable-xlarge-mdpi/xyz.png   10" tablet (720x1280 mdpi, 800x1280 mdpi, etc).

Ответ 4

В дополнение к папкам drawable-hdpi я включаю некоторые ресурсы в drawable-xlarge и выпадающие большие папки. Это работает для меня.

Другой альтернативой является масштабирование изображения в коде напрямую, что я делаю со следующим кодом:

Drawable scaledIcon = new BitmapDrawable(Bitmap.createScaledBitmap(myImage, pxInt, pxInt, true));
myImageView.setBackgroundDrawable(scaledIcon);

Не рекомендуется масштабировать большое количество изображений в вашем коде (используя этот метод), так как я считаю, что он ресурсоемкий, чтобы модифицировать изображения на лету, как это. Я использую это в некоторых случаях, когда изображение, которое я использую, может быть не стандартным (и я хочу, чтобы оно всегда соответствовало правилу).