Растровое изображение в Android: размер ресурсов для отображения как 50dp - PullRequest
4 голосов
/ 05 января 2012

У меня есть изображение PNG, которое я хочу отобразить в своем приложении.

В файле макета (.xml) я установил ширину и высоту 50dp (не зависит от плотности) Но каков должен быть размер моих файлов ресурсов (.png)?

Я думал об этом (расчет основан на коэффициентах плотности):

  • ресурс ldpi: 38
  • ресурс mdpi: 50 (базовый)
  • ресурс hdpi: 75
  • ресурс xhdpi: 100

Или достаточно одного png-файла в / res / drawables шириной 50px?

Ответы [ 2 ]

11 голосов
/ 07 января 2012

Вам нужно будет создать 4 изображения. mdpi будет базовой линией, что означает mdpi - 100%. Другие следуют этой формуле:

drawables

Поместите каждое изображение в соответствующую папку ресурсов: drawable-ldpi, drawable-mdpi, drawable-hdpi, drawable-xhdpi. В зависимости от текущего устройства Android выберет правильное изображение.

Затем, в вашем макете просто wrap_content ваша ширина и высота, нет необходимости указывать фиксированный размер:

<ImageView
    android:src="@drawable/my_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
3 голосов
/ 07 января 2012

Недостаточно иметь только одно изображение.Вы должны поместить разные изображения в каждой папке ресурсов ( drawables-ldpi , drawables-mdpi , drawables-hdpi и drawables-xhdpi ).

Обратите внимание, что 50dp не равно 50px

. Вы можете использовать эту формулу:

px = dp * (dpi / 160)

Вы можете найти другие полезные советы здесь .

...