Ресурси за Android - кои резолюции трябва да влизат в директориите hdpi, ldpi, mdpi и xhdpi

Опитвам се да напиша приложение, което ще работи добре на всички размери на екрана, за това карам моя графичен дизайнер да създава изображения, които са в исканите dpi за всяка директория (ниска плътност (120), ldpi, средна плътност (160), mdpi, висока плътност (240), hdpi, изключително висока плътност (320), xhdpi) обаче те искат да знаят при каква разделителна способност и съотношение на страните трябва да бъде всяко изображение, след като разгледат документацията за android, а именно: 1)http:/ /developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources 2)http://developer.android.com/guide/practices/screens_support.html Стигнах до следната информация: Не е точно това, че android поддържа 3 размера на екрана, android е операционна система, която може да работи практически на всеки размер на екрана, но има някои размери на екрана, които са по-често срещани от други, те са демонстрирани в таблицата по-долу (взета от http://developer.android.com/guide/practices/screens_support.html)

Таблица 1. Размери на екрана и плътност на кожите на емулатора, включени в Android SDK. Ниска плътност (120), ldpi Средна плътност (160), mdpi Висока плътност (240), hdpi Изключително висока плътност (320), xhdpi Малък екран QVGA (240x320)
Нормален екран WQVGA400 (240x400) WQVGA432 (240x432) HVGA ( 320x480) WVGA800 (480x800) WVGA854 (480x854)
Голям екран WVGA800* (480x800) WVGA854* (480x854)
Изключително голям екран

Тук си струва да се отбележи, че въпреки че изглежда, че няма връзка между тези размери на екрана, има съотношение на мащабиране 3:4:6 между трите плътности, така че растерно изображение 9x9 в ldpi е 12x12 в mdpi и 18x18 в hdpi (вижте http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources).

Тук можем да видим малко повече информация какво означават размерите на екрана:

Размер на екрана • малък: Екрани въз основа на наличното пространство на QVGA екран с ниска плътност. Като се има предвид портретен HVGA дисплей, той има същата налична ширина, но по-малка височина - той е 3:4 спрямо съотношението на страните 2:3 на HVGA. Примери за това са QVGA ниска плътност и VGA висока плътност. • нормален: Екрани, базирани на традиционния HVGA екран със средна плътност. Един екран се счита за нормален, ако има поне този размер (независимо от плътността), а не по-голям. Примери за такива екрани са WQVGA ниска плътност, HVGA средна плътност, WVGA висока плътност. • голям: Екрани въз основа на наличното пространство на VGA екран със средна плътност. Такъв екран има значително повече налично пространство както по ширина, така и по височина от HVGA дисплей. Примери са VGA и WVGA екрани със средна плътност. • xlarge: Екрани, които са значително по-големи от традиционния HVGA екран със средна плътност. В повечето случаи устройствата с изключително големи екрани биха били твърде големи за носене в джоб и най-вероятно биха били устройства в стил таблет. Добавен в API ниво 9.

Можем също да поддържаме специфични пропорции, както е дефинирано тук:

Аспект на екрана • дълъг: Дълги екрани, като WQVGA, WVGA, FWVGA • notlong: Не дълги екрани, като QVGA, HVGA и VGA

-- Всичко това обаче не е достатъчно, за да се отговори на простия въпрос каква трябва да бъде разделителната способност на тези изображения - могат ли всички да бъдат изрязани от едно и също изображение с висока разделителна способност или трябва да се правят отново за всеки dpi, тъй като съотношението на страните е различен? моля, помогнете, това задържа моя проект Благодаря!


person ekatz    schedule 12.03.2011    source източник


Отговори (2)


Зависи от вашите изображения, наистина. Много малки графики, които вероятно ще искате да нарисувате отделно, тъй като ще загубите фини детайли, когато интерполирате към по-малки размери, докато с по-големите вероятно ще се справите просто с премащабиране, като започнете с изображение с висока разделителна способност.

За фонови изображения това винаги е доста трудно. Тъй като не можете да разчитате на конкретна разделителна способност, можете или да прецените и да изберете малко по-малка от средната и да я превърнете в 9-кръпка, където ръбовете ще се разтеглят, за да покрият останалото пространство, или можете да изберете един малко по-голям от средния (нещо като 900 x 500) и просто се уверете, че областта на ръба не съдържа никаква подходяща информация. По принцип мислете за това като за ръб за печат, това е просто допълнителна област, която може да бъде отрязана, ако екранът не е достатъчно голям. По-лесно е просто да използвате някакъв градиент с възможност за рисуване или друг независим от разделителната способност тип изображение за фон, ако е възможно, поради големия брой различни разделителни способности, които да поддържате.

person Kevin Coppock    schedule 12.03.2011
comment
И все пак, какви са необходимите резолюции? Да речем за фонови изображения за всяка dpi категория, коя разделителна способност и съотношение трябва да използвам? - person ekatz; 12.03.2011

Когато създавам графики, обмислям следния начин: ldpi 240x320 mdpi 320x480 hdpi 480x800 xhdpi 800x1280

Поставяне на изображения в отделни папки с възможност за рисуване, drawable-hdpi, drawable-mdpi....

Фонът е малко труден, можете да го направите с bg или дори да го зададете от програмата си, а не от xml файла за оформление. Това ще ви осигури повече гъвкавост, за да изберете кога ще го преоразмерите или изрежете.

person Jova    schedule 16.11.2011