Android несколько размеров экрана и проблемы с плотностью - PullRequest
6 голосов
/ 10 декабря 2010

У меня есть реальная проблема с моими чертежами, которую я просто не могу понять.

Проблема в следующем:

Размеры экрана примерно 320х480, 480х800, 480x854

Тогда чаще всего встречаются плотности в 1,0 (160) и 1,5 (240)

. Теперь на Droid размер экрана составляет 480x800, а плотность составляет отчет с использованием DisplayMetrics как 1,5.

На G1 это 320x480 и с плотностью 1,0

, а планшетные устройства отчитываются с разрешением 480x800 с плотностью 1,0 (160)

Итак,Я схожу с ума, потому что я могу поместить изображения 320x480 в папку drawables-mdpi и 480x800 изображений в папку drawables-hdpi, но на планшетных компьютерах, независимо от того, что это ничего не изменяет размер до полного экрана.

Любая помощь будет принята с благодарностью.Я просто хочу, чтобы все мои изображения размером 320х480 масштабировались независимо от устройства.

Ответы [ 5 ]

2 голосов
/ 08 января 2011

В вашем манифесте могут отсутствовать некоторые теги, такие как anyDensity и supports.... Достойная поддержка планшетов пришла только с xlarge (в Gingerbread я думаю).

Также, если вы рисуете себя, вам нужно вызвать setTargetDensity(actualDensity) на вашем холсте, в рисовании или растровом изображении (не помню, какой из трех).

1 голос
/ 07 февраля 2011

Планшет делает что-то не так.Google специально дал возможность производителю оборудования объявить аппаратный mpdi, даже если dpi составляет около 160. Galaxy Tab делает это: http://realmike.org/blog/2010/12/21/multiple-screen-sizes-with-processing-for-android/

Вы можете попробовать добавить res / drawable-mdpi-xlarge идобавить hdpi графику здесь.Я думаю, что xlarge был представлен в 2.3, и более старые версии Android этого не узнают.Возможно, вы захотите попробовать drawable-mdpi-large тогда (согласно http://blog.alsutton.com/2010/07/03/android-tablets-and-mdpi-large/)

. Добавление дополнительных папок для рисования увеличивает размер вашего apk. В общем, планшеты до Gingerbread или лучше Honeycomb сложны в Android ине потрудитесь сделать для них особые вещи, если вы сможете избежать этого.

1 голос
/ 10 декабря 2010

Как вы применяете изображения? Вы можете просто использовать fill_parent для layout_width / height для ImageView и выбрать fitCenter для scaleType.

Совершенно правильно, что Galaxy Tab сообщает о среднем dpi (хотя я думал, что разрешение Tab было 1024 x 600?), Даже если это высокое разрешение . Точка на дюйм - это измерение размера пикселей (например, количество пикселей в дюйме). Таким образом, разрешение 480 x 800 на 4-дюймовом экране будет иметь более высокое разрешение, чем разрешение 480 x 800 на 7-дюймовом экране, просто потому, что они сжаты в меньшем пространстве.

На самом деле вы можете добавить дополнительную папку drawables с именем drawable-large-mdpi, которая может содержать файлы для большого экранированного устройства со средним разрешением, например Tab (см. здесь для получения дополнительной информации об этих квалификаторах).

0 голосов
/ 06 июля 2015

Перейдите по ссылке, которая может потребоваться для создания различных комбинаций размера экрана и плотности Res папок для вашего приложения.Пройдите через различные имена квалификаторов и поэкспериментируйте с ними.

http://developer.android.com/guide/practices/screens_support.html

0 голосов
/ 10 декабря 2010

Для масштабирования изображений без искажений или пикселизации Android использует изображения, называемые 9-patch.Подробнее о них можно прочитать здесь:

http://developer.android.com/guide/developing/tools/draw9patch.html

Но это более или менее полезно в зависимости от того, как вы решили использовать изображения.Например, инструмент «9 патчей» бесполезен, например, приложение для обоев.

Вот еще одна ссылка, которую я нашел на SO:

http://www.developer.com/ws/other/article.php/3889086

...