最近在做一个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()方法。
之后我将在存在drawable里面的一张图绘制到view上,以下是部分代码,w1和h1是图片的宽和高。
此时效果图
那么,为什么效果图会是这样呢?Rect src和Rect dst在其中起了什么作用?
Rect src=new Rect(left,top,right,bottom)
Rect dst=new Rect(left,top,right,bottom)
Rect描述矩形,是一个常用的绘画工具类。其中,四个参数如图所示定义。
src在此处的作用是绘制Bitmap的哪一部分,dst是将bitmap绘制到哪个位置。
上述代码中,src设置的是new Rect(0,0 ,w1,h1),即是整个图片
那么如果只绘制图片的四分之一,例如左下角部分。那么,
可以看出,图片在左上角,那么,想将图片位置移动,就要改变dst的值。
可以看出,当改变dst的值时,图片进行了移动。
后续可能会对canvas,paint进行总结。