У меня есть два изображения, которые я хочу отобразить в своем приложении.
Первое изображение должно быть полноэкранным (в качестве фона для приложения). Я несколько раз читал статью "Поддержка нескольких экранов" на developers.android.com, но я все еще не понимаю, какой размер должен быть для каждого изображения. Я попытался использовать точные размеры, но при просмотре приложения на больших экранах (т.е. 1280x800 @mdpi), я обнаружил, что фон кажется пиксельным. Это понятно, так как мое изображение для mpdi - 320x480 пикселей. Как я могу это исправить? Какое изображение размера следует использовать?
Второе изображение - это кнопка. В настоящее время у меня есть изображение с очень высоким разрешением, но приложение масштабирует его, чтобы он выглядел отлично. Тем не менее, я не хочу, чтобы это было так, когда приложение было выпущено. Для этого изображения мне нужно знать, какой размер в пикселях должен быть. В настоящее время в приложении находится 60dp x 50dp
. Что бы это преобразовать в пикселях? Я знаю, что использовать формулу px = dp * (dpi / 160)
, но что будет в этом случае? Я не могу использовать NinePatch PNG для этого изображения.
Я не понимаю, какой размер (в пикселях) для начала моих изображений, чтобы они отображались правильно на устройствах Android. Имеет ли dp = px, если вы находитесь на устройстве mdpi?
UPDATE:
Через несколько часов после того, как я ударил головой, я придумал следующее:
drawable-xlarge-xhdpi 2560x1920px
drawable-large-xhdpi 1920x1440px
drawable-normal-xhdpi 1280x960px
drawable-xlarge-hdpi 1920x1440px
drawable-large-hdpi 1440x1080px
drawable-normal-hdpi 960x720px
drawable-xlarge-mdpi 1280x960px
drawable-large-mdpi 960x720px
drawable-normal-mdpi 640x480px
drawable-xlarge-ldpi 960x720px
drawable-large-ldpi 720x540px
drawable-normal-ldpi 480x360px
Это будут мои доступные каталоги и максимальное разрешение, которое я ожидаю для каждого из них (я решил не поддерживать небольшие экраны). Поэтому мои изображения будут такими размерами.
Он отлично выглядит на моем телефоне. Я не вижу никаких артефактов. Он также работает над эмулятором для экрана с разрешением 1280x800 @mpdi, поэтому, надеюсь, он будет работать на всех устройствах...
Кто-нибудь видит проблему с этим? Есть лучший способ сделать это? Правильно ли мои вычисления выглядят?