NinePatchDrawable не получает отступ от чанка
Мне нужна помощь с NinePatchDrawable:
Мое приложение может загружать темы из сети. Почти все работает нормально, кроме PNG с 9 патчами.
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 () загружает растровое изображение с SD-карты. PNG с 9 патчами уже скомпилированы, это означает, что они включают в себя необходимый фрагмент.
Кажется, работает способ преобразования растрового изображения в объект NinePatchDrawable, потому что изображение растягивается так же, как я его нарисовал.
Единственное, что не работает, это заполнение. Я уже пытался установить отступ для вида следующим образом:
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) должен заполнить переменную rect заполнением, полученным из фрагмента, не так ли? Но это не так.
Результат: TextView (v) не показывает текст в области содержимого изображения 9-Patch. Отступы установлены в 0 в каждой координате.
Спасибо за прочтение.