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