NinePatchDrawable nie otrzymuje wypełnienia z porcji

Potrzebuję pomocy z NinePatchDrawable:

Moja aplikacja może pobierać motywy z sieci. Prawie wszystkie rzeczy działają poprawnie, z wyjątkiem 9-patchowych PNG.

final Bitmap bubble = getFromTheme("bubble");
if (bubble == null) return null;

final byte[] chunk = bubble.getNinePatchChunk();
if (!NinePatch.isNinePatchChunk(chunk)) return null;

NinePatchDrawable d = new NinePatchDrawable(getResources(), bubble, chunk, new Rect(), null);
v.setBackgroundDrawable(d);

d = null;
System.gc();

getFromTheme () ładuje bitmapę z karty SD. 9-patchowe PNG są już skompilowane, co oznacza, że ​​zawierają wymaganą porcję.

Sposób konwertowania mapy bitowej na obiekt NinePatchDrawable wydaje się działać, ponieważ obraz jest rozciągliwy tak samo jak go narysowałem.

Jedyną rzeczą, która nie działa, jest dopełnienie. Próbowałem już ustawić dopełnienie tak:

final Rect rect = new Rect();   // or just use the new Rect() set
d.getPadding(rect);             // in the constructor
v.setPadding(rect.left, rect.top, rect.right, rect.bottom);

d.getPadding (rect) powinien wypełnić zmienną rect z dopełnieniem otrzymanym z porcji, czyż nie? Ale tak nie jest.

Wynik: TextView (v) nie wyświetla tekstu w obszarze zawartości obrazu 9-Patchowego. Paddings są ustawione na 0 w każdej współrzędnej.

Dziękuje za przeczytanie.

questionAnswers(4)

yourAnswerToTheQuestion