在自定义 View 上使用 9-patch 图像资源的正确方法是什么?
我这样做:
background = BitmapFactory.decodeResource(getResources(), R.drawable.fundo_bookshelf);
canvas.drawBitmap(background, null, new Rect(0, y, width, y+backgroundHeight), null);
fundo_bookshelf 是一个合适的 9-patch 图片,保存为 fundo_bookshelf.9.png,见下图:
但是当使用 drawBitmap 时,整个图像被拉伸(stretch),而不是只有顶部黑色像素的部分,如这个截图所示:
最佳答案
是这样的吗?
NinePatchDrawable bg = (NinePatchDrawable) resources.getDrawable(id);
if (bg != null) {
bg.setBounds(0, 0, getWidth(), getHeight());
bg.draw(canvas);
}
(抱歉,我没有将其改编为您的代码,这是我自己的直接剪切/粘贴,但希望足以继续)
关于android - 使用 drawBitmap 在 Canvas 上绘制 9-patch 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708209/