android canvas的drawBitmap

1、基本的绘制图片方法

     
   //Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置
    drawBitmap(Bitmap bitmap, float left, float top, Paint paint)

 

 

2、对图片剪接和限定显示区域

   第一个Rect 代表要绘制的bitmap 区域,第二个 Rect 代表的是要将bitmap 绘制在屏幕的什么地方

drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint);

Rect src: 是对图片进行裁截,若是空null则显示整个图片

RectF dst:是图片在Canvas画布中显示的区域,
           大于src则把src的裁截区放大,
           小于src则把src的裁截区缩小。

 

此时我先定义两个Rect,mSrcRect 取值为整个Bitmap 区域 ,mDestRect 取值为view左上方和bitmap同样大小;

 

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. private Rect mSrcRect, mDestRect;  

 

 

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. mSrcRect = new Rect(0, 0, mBitWidth, mBitHeight);  
  2. mDestRect = new Rect(0, 0, mBitWidth, mBitHeight);  

 

在onDraw 里绘制该位图:

 

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. canvas.drawBitmap(mBitmap, mSrcRect, mDestRect, mBitPaint);  

画在左上方似乎缺乏美感,我们把美女画在view的中心,没错,我们只需要改变mDestRect:

 

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. // 计算左边位置  
  2. int left = mHalfWidth - mBitWidth / 2;  
  3. // 计算上边位置  
  4. int top = mHalfHeight - mBitHeight / 2;  
  5. mDestRect = new Rect(left, top, left + mBitWidth, top + mBitHeight);  

 

位置计算的时候,只需要注意在android屏幕坐标系里,左上角的位置是(0,0),往右往下为正,此时效果如下:

转载于:https://www.cnblogs.com/zhengtu2015/p/5871919.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值