Necesito ayuda con NinePatchDrawable:NinePatchDrawable no recibe el relleno del trozo
Mi aplicación se puede descargar temas desde la red. Casi todas las cosas funcionan bien, excepto 9 PNG de parche.
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 de la tarjeta SD. Los PNG de 9 parches ya están compilados, eso significa que incluyen el fragmento requerido.
La forma en que convierto el mapa de bits en un objeto NinePatchDrawable parece estar funcionando, porque la imagen es estirable y también la dibujé.
Lo único que no funciona es el relleno. Ya intentado fijar el relleno a la vista como esta:
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 el rect variable con el acolchado consiguió del trozo, no? Pero no es así
Resultado: The 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.
Resuelva un problema en b.android.com, también mencione el dispositivo utilizado y la versión de Android. – Reno
Gracias. Lo acabo de hacer. – DragonWork
¡Guau, muchas gracias! Funcionó perfectamente – ABentSpoon