美文网首页Android问题Android知识Android开发
解决用 drawBitmap 绘制点九图时,点九图不生效的问题

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

作者: NanBox | 来源:发表于2016-11-21 22:53 被阅读193次

我们都知道点九图的作用,这里就不多说了,反正就是各种好各种美如画,这次我们把点九图用到自定义控件中。我们用 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);

再运行一次。

看,妥妥的。

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/zgfppttx.html