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

API API方法介绍 使用频率
decodeResource(getResources(), R.mipmap.ic_launcher) 从res资源文件中将图片转化成bitmap 5★
public static Bitmap decodeStream(InputStream is) 将输入流转化成bitmap,也可以将assert中的图片以流的方式转成bitmap 5★
public static Bitmap decodeFile(String pathName) 将sd上的图片转化成bitmap 5★
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对象
matrix Matrix对象,对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);

    }

在这里插入图片描述

发布了100 篇原创文章 · 获赞 75 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/baidu_31956557/article/details/90734783