Dibujo de una imagen de 9 parches en un lienzo con drawBitmap
¿Cuál es la forma correcta de usar un recurso de imagen de 9 parches en una vista personalizada?
Estoy haciendo esto:
background = BitmapFactory.decodeResource(getResources(), R.drawable.fundo_bookshelf); canvas.drawBitmap(background, null, new Rect(0, y, width, y+backgroundHeight), null);
Fundo_bookshelf es una imagen apropiada de 9 parches, guardada como fundo_bookshelf.9.png, visto a continuación:
Pero cuando se utiliza drawBitmap, toda la imagen se estira, en lugar de sólo la parte con el píxel negro en la parte superior, como se muestra en esta captura de pantalla:
¿Algo como esto?
NinePatchDrawable bg = (NinePatchDrawable) resources.getDrawable(id); if (bg != null) { bg.setBounds(0, 0, getWidth(), getHeight()); bg.draw(canvas); }
(Lo siento, no adaptarlo a su código, que es un recto cortar / pegar de la mía, pero espero que suficiente para seguir adelante)