Android:canvas与drawBitmap()

内容分享1小时前发布
8 0 0

最近在做一个APP,其中用到了canvas和drawBitmap()

但是对drawBitmap(Bitmap bitmap,Rect src,Rect dst,Paint paint)这个方法的Rect src和Rect dst两个参数一直不太理解,特别学习了一下。

本文参考了 https://blog.csdn.net/ddwhan0123/article/details/53885732

第一,我先定义一个类继承了View,重写了onDraw()方法。

Android:canvas与drawBitmap()

之后我将在存在drawable里面的一张图绘制到view上,以下是部分代码,w1和h1是图片的宽和高。

Android:canvas与drawBitmap()

Android:canvas与drawBitmap()

此时效果图

Android:canvas与drawBitmap()

那么,为什么效果图会是这样呢?Rect src和Rect dst在其中起了什么作用?

Rect src=new Rect(left,top,right,bottom)

Rect dst=new Rect(left,top,right,bottom)

Rect描述矩形,是一个常用的绘画工具类。其中,四个参数如图所示定义。

Android:canvas与drawBitmap()

src在此处的作用是绘制Bitmap的哪一部分,dst是将bitmap绘制到哪个位置。

上述代码中,src设置的是new Rect(0,0 ,w1,h1),即是整个图片

那么如果只绘制图片的四分之一,例如左下角部分。那么,

Android:canvas与drawBitmap()

Android:canvas与drawBitmap()

可以看出,图片在左上角,那么,想将图片位置移动,就要改变dst的值。

Android:canvas与drawBitmap()

Android:canvas与drawBitmap()

可以看出,当改变dst的值时,图片进行了移动。

后续可能会对canvas,paint进行总结。

© 版权声明

相关文章

暂无评论

none
暂无评论...