Mam warstwę LayerDrawable, która powinna wyświetlać 5 bitmap. 1 tło i 4 ikony (które mogą być różne dla każdego LayerDrawable), podobnie jak siatka. Niestety te ikony nie mają tej samej szerokości co wysokość. Mój problem polega na ich rozmiar, przy zachowaniu ich proporcje i umieścić je w swoim stanowisku (1-4, 5 Icons tle):jak zmienić rozmiar i położenie rysunków wewnątrz warstwy LayerDrawable w systemie Android
==================
| | | |
| 1 | | 2 |
|------.5 .------|
|------. .------|
| 3 | | 4 |
| | | |
==================
Gdybym rozmiaru tych bitmap, dać im Gravity.CENTER
nie zmieści się już wewnątrz Granice tła Prostokąt. Jeśli opuścisz numer Gravity.CENTER
, zostaną one przeskalowane, gdy tylko zadzwonię pod numer layerDrawable.setLayerInset(numlayer, left, top, right, bottom)
. Co to jest właściwy sposób? Jak mogę zachować ich stosunek podczas umieszczania ich poprawnie? Do tej pory nie mogłem zrozumieć, dlaczego getIntrinsicWidth/Height z BitmapDrawable zwraca coś innego (mniejszego) niż getWidth/Height z oryginalnej bitmapy.
Co próbowałem:
1. Pobieranie ich z XMLa, umieszczanie w środku "dummy-drawable" i zastąpienie go wynikiem opisanym powyżej. 2. Utwórz warstwę LayerDrawable w moim programie, przekazując wszystkie zawarte w niej rysunki. Wydaje się, że setLayerInset nie ma wpływu, czy widzę tylko tłem (który był element 0 w moim rozciągliwej tablicy)
3. Rozszerzenie LayerDrawable i starają się śledzić na niczym się bez rozsądnych wyników