Canves基本操作(绘制图片)

1.drawPicture

在Canves基本操作中,drawPicture
其实是将提前录制好的Canves显示到当前的Canves中,可以理解为每天都想看见我的女神,你的每天跑到她身边去看他,Picture的功能就是将女神风采保存下来,想看的时候拿出来欣赏(个人理解)。

1.1 了解相关Picture的API
API相关介绍
beginRecording开始录制(相当于开始给女神录像 )返回一个Canves对象 需要一个Width,Height
draw将picture显示到Canves上
getHeight获取picture的高度
getWidth获取picture的宽度
endRecording录制结束
1.View初始化的时候录制
 private void recording() {
        // 开始录制 (返回值Canvas)
        Canvas canvas = mPicture.beginRecording(500, 500);
        canvas.drawColor(Color.RED);
        canvas.drawCircle(100,100,100,paint);
        mPicture.endRecording();
    }
    2.在ondraw中绘制picture
    protected void onDraw(Canvas canvas) {
       super.onDraw(canvas);
        canvas.drawPicture(mPicture);
    }

在这里插入图片描述

2.drawBitmap绘制图片
2.1 常用的创建bitmap中BitmapFactoryAPI

只列举一些简单常用的API,Bitmap

APIAPI方法介绍使用频率
decodeResource(getResources(), R.mipmap.ic_launcher)从res资源文件中将图片转化成bitmap5★
public static Bitmap decodeStream(InputStream is)将输入流转化成bitmap,也可以将assert中的图片以流的方式转成bitmap5★
public static Bitmap decodeFile(String pathName)将sd上的图片转化成bitmap5★
2.2 drawBitmap 重载方法
/**
2. 4个参数的方法
**/
  public void drawBitmap(lBitmap bitmap, float left, float top,  Paint paint)
参数参数介绍
bitmap需要绘制到画布上的bitmap对象
left距离画布原点左边距离
top距离画布原点头部
paint画笔
/**
2. 3个参数的方法
**/
public void drawBitmap(Bitmap bitmap, Matrix matrix,  Paint paint)
参数参数介绍
bitmap需要绘制到画布上的bitmap对象
matrixMatrix对象,对bitmap进行特定操作
paint画笔
/**
2. 3个参数的方法
**/
 public void drawBitmap(Bitmap bitmap, Rect src, Rect dst,  Paint paint) 
参数参数介绍
bitmap需要绘制到画布上的bitmap对象
src指定bitmap绘制特定范围 在canves上显示
dst指定图片在屏幕上显示的区域
paint画笔
2.3 drawBitmap 绘制图片
 protected void onDraw(Canvas canvas) {
       super.onDraw(canvas);

        //从res资源文件中将图片是绘制出来
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
        Matrix matrix = new Matrix();
        //第一种绘制bitmap方法
        canvas.drawBitmap(bitmap,matrix,paint);
//         指定图片绘制区域
        Rect src = new Rect(0,0,bitmap.getWidth()/2,bitmap.getHeight()/2);
//         指定图片在屏幕上显示的区域
        Rect dst = new Rect(0,0,bitmap.getWidth()/2,bitmap.getHeight()/2);

        //第二种绘制bitmap方法
        canvas.drawBitmap(bitmap,src,dst,null);
        //第三种绘制bitmap方法
//        canvas.drawBitmap(bitmap,200,200,paint);

    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值