NinePatchDrawable no obtiene relleno de parte
Necesito ayuda con NinePatchDrawable:
Mi aplicación puede descargar temas de la red. Casi todas las cosas funcionan bien, excepto los PNG de 9 parches.
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 () carga el mapa de bits desde la tarjeta SD. Los PNG de 9 parches ya están compilados, lo que significa que incluyen el fragmento requerido.
La forma en que convierto el Bitmap a un objeto NinePatchDrawable parece estar funcionando, porque la imagen es estirable y la dibujé yo.
Lo único que no funciona es el relleno. Ya intenté configurar el relleno a la vista de esta manera:
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) debe llenar la variable rect con el relleno obtenido del trozo, ¿no es así? Pero no lo hace.
Resultado: TextView (v) no muestra el texto en el área de contenido de la imagen de 9 parches. Los rellenos se establecen en 0 en cada coordenada.
Gracias por leer.