12

Hallo,Android Widget bitmapy Rozmiary

piszę widżet, ale jestem pewien jaki rozmiar bitmapy użyć jako tła dla każdej rozdzielczości ekranu/gęstości.

Według poradnika 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 

Więc jeśli mój widżet jest 72dp x 294dp, jaki rozmiar bitmapy muszę do mojego ldpi, MDPI i kanału alfa hdpi?

Czy w moim manifeście będą potrzebne jakieś konkretne ustawienia ekranu obsługi ekranu?

TIA,

-Frink

Aktualizacja: Zrobiłem pewne wzory szachownicy w różnych rozmiarach i kolorach dla każdego folderu drawable- i próbował je. Czy ta gęstość jest czymś w rodzaju czerwonego śledzia?

Właśnie zrobiłem zrzut ekranu mojego emulatora działającego jako HVGA, o średniej gęstości, 320x480. Rozmiar zajmowany przez mój widget wynosi 320x100, więc utworzyłem mapę bitową 320x100 w folderze mdpi jako tło dla mojego widżetu, który wygląda idealnie zarówno na moim emulatorze, jak i na LG GT540.

I dla emulatora działającego jako WVGA854, wysoka gęstość, 480x854. Rozmiar mojego widżetu to 480x150. Tworzenie tła tego rozmiaru i umieszczenie go w folderze hdpi jest wyświetlane poprawnie na tym emulatorze. Nie mam sprzętu do przetestowania tego na Tho :-(

Update2: myślę, że mogę wyjaśnić mój problem lepiej :-)

Jeśli mam trzy urządzenia:

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

Fizyczna Rozmiar ekranów prawdopodobnie byłby inny, ale nie sądzę, aby rzeczywiste rozmiary były istotne.

Dowiedziałem się, że urządzenie 1 i urządzenie 2 będą wymagać tła o wymiarach 320 x 100, natomiast urządzenie 3 będzie wymagało 400x150 . ize tło przechodzi do folderu mdpi, aby wyświetlać poprawnie na urządzeniach Device2 i Device3?

+0

Jestem również zainteresowany odpowiedzią. Mój widget to pojedyncza komórka, a rozmiary obrazów, których używałem, to kwadraty o boku 72 pikseli, 100 pikseli i 150 pikseli. Są to tylko domysły, więc bardzo chciałbym poznać "oficjalne" numery. –

+0

W odpowiedzi na aktualizację, wygląda na to, że działa, prawda? Czy jest jakiś problem? Ponadto po uruchomieniu emulatora istnieje ustawienie (lub ustawienia emulatora) umożliwiające skalowanie emulatora do "rzeczywistego" rozmiaru, co może pomóc w testowaniu. – Computerish

+0

Computerish - patrz Update2! Patrzę na moje emulatory w "rzeczywistym" rozmiarze, ta – FrinkTheBrave

Odpowiedz

9

Po prostu trzeba przekonwertować 72dp x 294dp na rzeczywiste rozmiary pikseli dla ldpi, mdpi i hdpi.Proces ten zostanie opisany:

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

Wzoru pixels = dps * (density/160), a więc w przypadku, 72 DP x 294 DP wyniesie:

  • ldpi (120): 54 x 221 pikseli
  • MDPI (160): 72 x 294 pikseli
  • hdpi (240): 108 x 441 pikseli
  • xhdpi (320): 144 x 588 pikseli

Aktualizacja w odpowiedzi na drugą aktualizację: Zasoby oparte na gęstości mają na celu sprawdzenie, czy grafika ma (w przybliżeniu) taki sam rzeczywisty rozmiar na różnych urządzeniach. W twoim przypadku jednak nie zależy Ci na rzeczywistym rozmiarze, zależy ci na tym, aby tło wypełniło miejsce, które ma wypełnić dla widgetu. Powinieneś być w stanie poradzić sobie z tym problemem dla większości środowisk poprzez stworzenie obrazu Dziewięć łat. Dziewięć łat będzie skalowane zgodnie z wymaganym rozmiarem.

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

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

+0

Pozdrawiam, oddam to, gdy następnym razem dostanę szansę – FrinkTheBrave

+0

@FrinkTheBrave, daj nam znać, jak się masz –

+0

Wydaje mi się, że foldery do rysowania powinny być związane z rozmiarem ekranu, a nie gęstością? – FrinkTheBrave

Powiązane problemy