在自定义视图上使用9补丁图像资源的正确方法是什么?
我这样做:
background = BitmapFactory.decodeResource(getResources(), R.drawable.fundo_bookshelf);
canvas.drawBitmap(background, null, new Rect(0, y, width, y+backgroundHeight), null);
fundo_bookshelf是一个适当的9补丁图像,保存为fundo_bookshelf.9.png,如下所示:
但是当使用drawBitmap时,整个图像被拉伸,而不是只有顶部带有黑色像素的部分,如此截图所示:
答案 0 :(得分:24)
这样的东西?
NinePatchDrawable bg = (NinePatchDrawable) resources.getDrawable(id);
if (bg != null) {
bg.setBounds(0, 0, getWidth(), getHeight());
bg.draw(canvas);
}
(对不起,我没有让它适应你的代码,这是我自己的直接剪切/粘贴,但希望足够继续)