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


版權聲明:本文爲博主原創文章,未經博主容許不得轉載。java

相關文章
相關標籤/搜索