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

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

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

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

Ответы [ 4 ]

26 голосов
/ 29 марта 2012

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

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

18 голосов
/ 29 марта 2012

Если вы хотите достичь этого без увеличения размера приложения, существует способ, позволяющий экрану высокой плотности и экрану большой средней плотности использовать один и тот же ресурс. Вам нужно поместить изображение, которое вы хотите использовать повторно, в папку 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, и вам потребуется поддерживать только одну версию изображения. Я довольно часто использую эту технику, и она работает очень хорошо. Надеюсь, это поможет!

10 голосов
/ 25 марта 2014

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

Устройства:

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).
0 голосов
/ 29 марта 2012

Я включаю некоторые ресурсы в папки drawable-xlarge и drawable-large, в дополнение к папкам drawable-hdpi.Это работает для меня.

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

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

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

...