知识点:
Canvas():创建一个空的画布,可以使用setBitmap()方法来设置具体的画布
Canvas(Bitmap bitmap):以bitmap对象创建一个画布,则将内容都绘制在Bitmap上,因此bitmap不能为Null
Canvas(GL gl):在绘制3D效果时使用,与OpenGL相关
drawColor:设置背景颜色
setBitmap:设置画布
clipRect:设置显示区域,即设置裁剪部分
isOpaque:是否支持透明度
rotate:旋转画布
setViewport:设置画布中显示窗口
skew:设置偏移量
代码示例:
package com.example.examples_05_04;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;
public class GameView extends View implements Runnable {
private Paint m_paint;//声明一只画笔
public GameView(Context context) {
super(context);
// TODO Auto-generated constructor stub
m_paint=new Paint();//实例化画笔
new Thread(this).start();//开启线程
}
public void run() {
// TODO Auto-generated method stub
while (!Thread.currentThread().isInterrupted()) {
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO: handle exception
Thread.currentThread().interrupt();
}
//更新
postInvalidate();
}
}
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
//设置画笔的颜色
canvas.drawColor(Color.BLACK);
//取消锯齿效果
m_paint.setAntiAlias(true);
//设置裁剪区域
canvas.clipRect(10, 10, 280, 260);
//锁定画布
canvas.save();
//旋转画布
canvas.rotate(45.0f);
//设置颜色和绘制矩形
m_paint.setColor(Color.RED);
canvas.drawRect(new Rect(10, 15, 140, 70), m_paint);
//解除画布锁定
canvas.restore();
//设置颜色绘制另一个矩形
m_paint.setColor(Color.GREEN);
canvas.drawRect(new Rect(150, 75, 260, 120), m_paint);
}
}
package com.example.examples_05_04;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GameView(this));
}
}