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);
}