常用方法
Canvas():创建一个空白画布可以使用setBitmap设置绘制具体的画布
Canvas(Bitmap bitmap):已bitmap对象创建一个画布,则将内容都绘制在bitmap上,因此bitmap不能为NULL
Canvas(javax.microedition.khronos.opengles.GL gl):绘制3D效果时使用,与OpenGL有关
drawColor:设置Canvas的背景颜色
setBitmap:设置具体画布
clipRect:设置显示区域,即设置裁剪区域
isOpaque:检测是否支持透明
rotate:旋转画布
setViewport:设置画布中显示的窗口
skew:设置偏移量
save:锁定画布,如果要对画布进行旋转、移动等操作时进行锁定时可以只旋转或移动其中一个
restore:解锁画布,与锁定一起使用,不能比save方法使用次数多
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;
/**
* @version 2012-8-10 上午10:25:09
**/
public class GameView extends View implements Runnable {
Paint mPaint = null;
public GameView(Context context) {
super(context);
mPaint = new Paint();
new Thread(this).start();
}
@Override
public void run() {
// 判读该线程是否中断
while(!Thread.currentThread().isInterrupted()) {
try {
Thread.sleep(100);
}
catch(Exception e) {
Thread.currentThread().interrupt();
}
// 使用postInvalidate可以直接在线程中更新界面
postInvalidate();
}
}
@Override
protected void onDraw(Canvas canvas) {
// 设置画布颜色
canvas.drawColor(Color.BLACK);
// 取消锯齿效果
mPaint.setAntiAlias(true);
// 设置裁剪区域
canvas.clipRect(10, 10, 280, 260);
// 锁定画布
canvas.save();
// 旋转画布
canvas.rotate(45.0f);
// 设置画笔颜色
mPaint.setColor(Color.RED);
// 画矩形
canvas.drawRect(new Rect(15, 15, 140, 70), mPaint);
// 解锁画布
canvas.restore();
// 设置画笔颜色
mPaint.setColor(Color.GREEN);
// 画矩形
canvas.drawRect(new Rect(150, 75, 260, 120), mPaint);
}
}