Canvas画布

常用方法
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);
    }
}


你可能感兴趣的:(thread,exception,null,Class)