自定义组件之绘制图片

       这个操作在我们自定义组件中可以说是十分常见的,方法也是十分的简单。之所以写这篇文章就是因为  canvas.drawBitmap() 这个方法重载多次,各方法之间时间一长就容易搞混,所以,写下这篇文章以便往后回顾 。

代码演示

drawBitmap(@NonNull Bitmap bitmap, float left, float top, @Nullable Paint paint)

/*
*参数一:要绘制的图片 bitmap
*参数二:左边起始坐标(针对画布)
*参数三:顶部起始坐标(针对画布)
*参数四:绘制画笔,这个地方传 null 即可
*/

//示例:
@Override
protected void onDraw(Canvas canvas) {
    canvas.drawBitmap(mSelfPhoto,0,0,null);
}

注意:这个方法就是将 原图 从画布的左上角 全部画出来,如果自定义控件(即画布)太小,便显示不全。

效果如下:

drawBitmap(@NonNull Bitmap bitmap, @Nullable Rect src, @NonNull Rect dst,          
 @Nullable Paint paint)

/*
*参数一:要绘制图片的 bitmap
*参数二:选取矩形区域(针对要绘制的图片来说的)
*参数三:选取矩形区域(针对画布来说的)
*参数四:画笔,一般置为 null
*/

示例:
@Override
protected void onDraw(Canvas canvas) {
   Rect src = new Rect(mSelfPhoto.getWidth()/2-50,mSelfPhoto.getHeight()/2-50,
                mSelfPhoto.getWidth()/2+50,mSelfPhoto.getHeight()/2+50);
   Rect dst = new Rect(0,0,100,100);
   canvas.drawBitmap(mSelfPhoto,src,dst,null);
}

 注意:这个方法就是得注意两个 Rect 是针对谁来取得。

效果如下:

圆角图片的绘制请参考: 自定义组件之圆角图片的绘制

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

super码王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值