,,Android canvas drawBitmap方法详解及实例
这篇文章主要介绍了机器人画布绘图位图方法详解及实例的相关资料,需要的朋友可以参考下
?Android canvas drawBitmap方法详解及实例美元
之前自己在自定义视觉效果,用到canvas.drawBitmap(点阵图、SrcRect、不尊重、绘图)的时候,对其中的第2和3个参数的含义含糊不清看源码函数也没理解,然后看了一些其他的博客加上自己的理解,整理如下首先,我们看一张图片,今天就要绘制这张图片
然后将图片用红色的线条分成四个部分,如下:
我们自定义一个视觉效果,代码如下:
公共类potrdfflingview扩展视图[
私人资源人力资源;
私人油漆mbitpaint
mBitmap私有位图;
私人int mTotalWidth,mtotalheight
私有位图女孩位图
私人(同Internationalorganizations)国际组织陀螺宽度,陀螺仪八;
私直陀螺仪、陀螺仪等;
public pottuffingview(context context)>
超级(上下文):
Mr resources=getresores();
init bitmap();
}
私有void初始化位图()>
//美女图片的宽和高
Gil bitap=[(bitmapdrawable)mresourcesgetdrawable(r . drawablea1)].getBitmap():
gilbitwidth=gilbitapget width();
gilbit8=gilbitap获取height();
}
@覆盖
受保护的void onDraw(画布)
太好了翁德劳(画布);
画布绘制位图(gilbitmap、girlrect、girldesrect、null);
}
@覆盖
轻松保护void(int width meturespec,int heightmeasurespec)>
超级关于ease(widthmeturespec,heightMeasureSpec):
}
@覆盖
受保护的void onsizedchanged(int w,int h,int oldw,int old h)}
日志(四)
339 www百度一下com/more/
x,onSizeChanged,w=' w ',h=' h ',mbitwidth=' mbitwidth ',mbit theft=' mbit theft
太好了onSizeChanged(w,h,oldw,oldh);
mtotalwidth=w;
mtotalheight=h;
rotate rect=new rect(0,0,旋转宽度,旋转高度);
gildsrect=new rect(0,0,girlbitwidth,Gil bit 8);
}
}
其中:
rotate rect=new rect(0,0,旋转宽度,旋转高度);
表示要画的图就是整个图片的大小我觉得陀螺仪矩形就是指画图的大小范围
吉拉德雷:就是所画的图在视图(视图)上的位置表是距离左边和上边为0个,右边(转盘宽度- 0)就为图片的宽度,下边(吉尔比特8-0)为图片的高度
效果图如下:
当我们想移动图片的位置,代码如下:
girldesrect=新直线(20,50,20吉拉德宽度,50吉拉德八);
表示图片的左边所在的位置为20个像素,图片的顶部在视图(视图)上的位置为50个像素图片右边在视图(视图)上的位置为(20个转盘宽度)即距离图片的左边的距离是:[(20吉拉德宽度)- 20]底部一样的道理
如图:
如果我们只想画上述图片的第2部分,该怎么做呢?我们只需要做如下修改:
rotate rect=new rect(旋转宽度/2.0,旋转宽度,旋转高度/2);
girldesrect=新直线(20,50,20吉拉德宽度,50吉拉德八);
效果图:
是不是就是显示图片的第二部分呢,细心的会发现这个图和之前整体的图片大小是一样的原因是什么呢:
陀螺仪矩形:表示我们要画图的部分
吉拉德雷:表示我们要绘图的位置从上面的吉拉德雷值看出,绘图的位置的确是整个图片的位置
那我们只想要四分之一图的大小呢,怎么办?
rotate rect=new rect(旋转宽度/2.0,旋转宽度,旋转高度/2);
girldesrect=新直线(20,50,20吉拉德宽度/2.50吉列宽度/2);
如下图:
好了,就到这里了,毕竟自己写的才回更深刻!
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!xxxxx
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。