解决用 drawBitmap 绘制点九图时,点九图不生效的问题

我们都知道点九图的作用,这里就不多说了,反正就是各种好各种美如画,这次我们把点九图用到自定义控件中。我们用 drawBitmap 来绘制点九图,然而似乎有点问题。
我找了这张图来演示一下:

这是用 drawBitmap 的代码:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bubble);
Rect rect = new Rect(l, t, r, b);
canvas.drawBitmap(bitmap, null, rect, new Paint());

然后编译运行。

哎呦,我去!这是什么鬼!说好的美如画呢。

没事,我们换两句代码来实现。当绘制点九图时,我们要用到NinePatch这个类,代码改成这样:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bubble);
NinePatch ninePatch = new NinePatch(bitmap, bitmap.getNinePatchChunk(), null);
RectF rectF = new RectF(l, t, r, b);
ninePatch.draw(canvas, rectF);

再运行一次。

看,妥妥的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容