Android: поддержание размера ресурса изображения - PullRequest
0 голосов
/ 05 августа 2011

Я знаю, что на эту тему есть тонны вопросов, но я попытался найти тонны постов "android dpi" и прочитать онлайн-документацию, но не нашел точного вопроса, который у меня есть.

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

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

Скажите, что у меня есть следующие настройки для папок для рисования и макета (Приложение только в альбомной ориентации):

res/drawable-ldpi/button.png (120 dpi)
res/drawable-mdpi/button.png (160 dpi)
res/drawable-hdpi/button.png (240 dpi)

res/layout-small/main.xml - button is set to 100dp
res/layout-normal/main.xml - button is set to 100dp
res/layout-large/main.xml - button is set to 100dp

Скажем, у меня есть кнопка, которой я хочу быть 100dp на любом экране. Следуя правилу масштабирования 3: 4: 6, кажется, что если у меня есть ресурс кнопки шириной 100 пикселей для плотности mdpi, я должен сделать еще одну кнопку для плотности ldpi, равной 75 пикселей, и одну кнопку для плотности hdpi, равной 150 пикселям. Это верно? Я создаю кнопку 75 пикселей на 120 точек на дюйм, кнопку 100 пикселей на 160 точек на дюйм и кнопку 150 пикселей на 240 точек на дюйм, а затем просто говорю android: layout_width = "100dp" во всех трех файлах макета? Или мне сделать все три кнопки 100px с разными точками на дюйм?

А что если у меня исправлена ​​эта кнопка 9? Нужно ли создавать кнопку три раза при 120dpi, 160dpi и 240dpi, каждый из которых имеет размер 100px? Или я просто создаю одну кнопку с 9 исправлениями при 100px и 160dpi и помещаю ее в папку для рисования mdpi?

Онлайн-документация меня немного смущает, поэтому я ищу упрощенный ответ.

Это для Android версии 1.6+ (не новинка для 3.2 и т. Д.)

Спасибо за вашу помощь ... Я просто хочу, чтобы кнопка занимала то же место на 3,7-дюймовом экране, что и 7-дюймовый экран, и не была размытой!

1 Ответ

0 голосов
/ 19 января 2012

Вы сортировали это?Afaik, и по моему опыту, не меняйте dpi при создании изображений, скажем, в Photoshop.Я всегда оставлял свой стандарт на уровне 72, я думаю.Несмотря на это, я не думаю, что это имеет значение, если вы установите его в миллион.

Упомянутые вами значения px верны для lm и h.Я бы оставил спецификатор mdpi вне имени папки;Я не уверен в протоколе, если на устройстве xhdpi нет папки для рисования без квалификатора xhdpi и папки без квалификаторов.

Рабочий процесс: создайте изображения с размерами 75, 100 и 150. Положите 75 в папку ldpi, 100 в папке drawables без спецификатора, и 150 в hdpi.Оставьте ваши макеты такими, какие они есть сейчас, с 100dp.Они должны правильно масштабироваться.Тем не менее, я не думаю, что вам нужно указывать размер изображения, если вы используете полное разрешение.

Комментарии для устранения неточностей в моем ответе всегда приветствуются, даже спустя годы.

...