Подтвердить что ты не робот

Размеры видоискателя Android

Алло,

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

В соответствии с Android Developer App Widgets:

To find your minimum width and height in density-independent pixels (dp), use this formula:
(number of cells * 74) - 2
Following this formula, you should use 72 dp for a height of one cell, 294 dp and for a width of four cells

Итак, если мой виджет 72dp x 294dp, какие растровые изображения нужны мне для моих ldpi, mdpi и hdpi чертежей?

Кроме того, мне нужны какие-то настройки поддержки экранов в моем манифесте?

ТИА,

-Frink

Обновление: Я сделал несколько шаблонов шахматной доски различных размеров и цветов для каждой папки с возможностью рисования и попробовал их. Является ли эта плотная вещь немного красной селедкой?

Я только что сделал экранный захват моего эмулятора, работающего как HVGA, средняя плотность, 320x480. Размер моего виджета - 320x100, поэтому я создаю растровое изображение 320x100 в папке mdpi в качестве фона для моего виджета, он отлично выглядит как на моем эмуляторе, так и на LG GT540.

И для эмулятора, работающего как WVGA854, с высокой плотностью, 480x854. Размер моего виджета - 480x150. Создание фона этого размера и размещение его в папке hdpi отображается на этом эмуляторе правильно. У меня нет оборудования для проверки этого на tho: - (

Update2: Я думаю, что теперь я могу объяснить свою проблему лучше: -)

Если у меня есть три устройства:

Device1, resolution 320x480, density ldpi
Device2, resolution 320x480, density mdpi
Device3, resolution 400x854, density mdpi

Физический размер экранов, вероятно, будет отличаться, но я не думаю, что фактические размеры имеют значение

Я разработал, что Device1 и Device2 потребуется фон 320x100, тогда как Device3 потребуется 400x150 Итак, какой размер фона входит в папку mdpi для правильного отображения на Device2 и Device3?

4b9b3361

Ответ 1

Вам просто нужно преобразовать 72dp x 294dp в фактические размеры пикселей для ldpi, mdpi и hdpi. Этот процесс объясняется здесь:

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

Формула pixels = dps * (density / 160), поэтому в вашем случае 72 dp x 294 dp будет равно:

  • ldpi (120): 54 x 221 пикселей
  • mdpi (160): 72 x 294 пикселей.
  • hdpi (240): 108 x 441 пиксель.
  • xhdpi (320): 144 x 588 пикселей

Обновление в ответ на второе обновление. Ресурсы, основанные на плотности, направлены на то, чтобы графики (примерно) имели одинаковый фактический размер на всех устройствах. В вашем случае, однако, вам не нужен фактический размер, вы заботитесь о том, чтобы фон заполнил все пространство, которое он должен заполнить для виджета. Вы должны уметь справляться с этой проблемой в большинстве случаев, создав изображение Nine Patch. Девять патчей будут масштабироваться в соответствии с требуемым размером.

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

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