问题描述
|
在自定义视图上使用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时,整个图像将被拉伸,而不是仅拉伸顶部具有黑色像素的部分,如以下屏幕截图所示:解决方法
像这样吗
NinePatchDrawable bg = (NinePatchDrawable) resources.getDrawable(id);
if (bg != null) {
bg.setBounds(0,getWidth(),getHeight());
bg.draw(canvas);
}
(对不起,我没有将其适应您的代码,这是我自己的直接剪切/粘贴,但希望能够继续进行下去)