2012-03-29 1 views
19

У меня вводимого коэффициента для каждой плотности как ldpi, MDPI, ИПЧР и xhdpiMDPI изображение слишком мало для 10" андроид планшет

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

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

ответ

25

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

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

+0

@ warrenfaith: Я тоже представлен с тем же значением. –

+0

@ Раман-Мисти, извините, я не понимаю, что вы пытаетесь сказать. – WarrenFaith

+0

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

18

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

/drawable-nodpi/my_resource_xhdpi.png 

Тогда в как вытяжка-xhdpi и рисую-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> 

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

+2

интересное обходное решение. спасибо за обмен – WarrenFaith

+0

@kingraam: Мне нужен один xml-файл для каждого png. Это правильно? – efeyc

+1

Возможно, вам понадобится один XML-файл, такой как изображение, на размер/размер экрана, который вы хотите использовать. Недостатком этого подхода является то, что вы должны покрыть больше комбинаций размера и плотности. Например, если был выпущен планшет hpdi, вам нужно поместить изображение или xml-файл в drawable-xlarge-hdpi, иначе он просто будет использовать один в drawable-xlarge, который указывает на изображение в drawable-nodpi .. и потому что он в nodpi не будет увеличен, поэтому он будет физически меньше на экране. Поэтому используйте с осторожностью! Однако я не знаю лучшего подхода к обложению изображениями между папками плотности и размера. – kingraam

0

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

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

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

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

9

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

Devices:

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

вот так ¡¡thx¡¡ – Billyjoker

+0

добро пожаловать @Billyjoker;) – karan

Смежные вопросы