Используйте ресурсы HDPI на Kindle Fire

В настоящее время я пытаюсь заставить свое приложение для Android работать на Kindle Fire. У меня есть изображения для экранов MDPI и HDPI, но я заметил, что когда я загружаю приложение на Kindle, оно отображает изображение MDPI и растягивает некоторые из моих изображений, которые я заполняю родителем, немного больше, чем я хочу. .

Мне было интересно, есть ли способ на Android при определенных обстоятельствах (например, если я на Kindle) заставить его загружать из обложки HDPI вместо того, чтобы по умолчанию использовать MDPI.

Я понимаю, что могу просто сохранить свою HDPI-графику в папке MDPI с немного другим именем и выполнить проверку для каждого ресурса, но это много накладных расходов, не говоря уже об увеличении размера моего приложения, которое я д также хотел бы избежать.

Спасибо

Обновление: все еще смотрю на это. Я думаю, к чему я действительно клоню, есть ли способ для устройства Android выбрать обложку HDPI вместо MDPI, даже если обложка MDPI существует?


person user1174195    schedule 27.01.2012    source источник


Ответы (3)


Kindle Fire имеет разрешение 1024x600 с разрешением 160 точек на дюйм, верно?

Вы можете попробовать новые ресурсы с этим разрешением. И поместите их в папку MDPI. Добавьте layout-large в каталог /res и скопируйте туда файл макета. Таким образом, с Kindle Fire вы используете макет в layout-large, указывающий на большие ресурсы в папке MDPI.

И убедитесь, что вы всегда используете чертежи с девятью исправлениями для ресурсов.

Надеюсь, это поможет вам.

person Chronos    schedule 28.01.2012
comment
Спасибо за ответ. К сожалению, многие мои работы не так хорошо воспроизводятся, как изображения с девятью исправлениями, поэтому изображения MDPI, которые у меня есть, выглядят довольно хорошо на экране 480x320, а изображения HDPI хорошо смотрятся на изображениях ~ 800x480, что выглядело бы не так уж плохо, если бы Я мог бы загрузить его на Kindle, но это означает либо найти способ перенаправить Kindle для загрузки из папки HDPI, либо продублировать мою работу в папку MDPI, как я говорил выше, но это увеличило бы размер моего файла. apk, чего я хотел бы избежать. В любом случае, идея неплохая, но я хотел бы попробовать что-нибудь еще... - person user1174195; 29.01.2012
comment
› Kindle Fire имеет разрешение 1024x600 с разрешением 160 точек на дюйм, верно? нет, это 600x1024 (:D) с разрешением 169 точек на дюйм https://developer.amazon.com/help/faq.html#KindleFire - person Galymzhan Sh; 27.02.2012

Тем временем я использовал решение для взлома, но я наткнулся на это:

Я не хочу, чтобы Android автоматически изменял размер растрового изображения

Практически просто нужно было переместить мои изображения hdpi в папку nodpi (чтобы избежать проблем с масштабированием) и немного изменить имена (я добавил _hd к имени). После этого я сделал загрузчик изображений, который берет имя изображения, которое я хочу, и возвращает изображения _hd, если устройство hdpi или если это Kindle Fire:

id = ctx.getResources().getIdentifier(string + "_hd", "drawable", context.getPackageName());

Примечание. Документы не рекомендуют использовать getIdentifier(), так как это менее эффективно, чем просто использование адреса ресурса, но я взглянул на время загрузки, и загрузка 1000 изображений с помощью getIdentifier занимает 0,25 секунды, что меня устраивает. тем более, что я не загружаю столько изображений.

person user1174195    schedule 06.04.2012

Вы можете попробовать новые ресурсы с таким разрешением и поместить их в папку MDPI. Добавьте layout-large в каталог /res и скопируйте туда файл макета. Таким образом, с Kindle Fire вы используете макет layout-large, указывающий на большие ресурсы в папке MDPI.

person Trey Hall    schedule 21.04.2012