Java中的Canvas绘图源码实例,主要是画线条、弧线、圆角矩形、三角形、文字、圆形等简单的几何图形,主要是通过创建DrawingCanvas对象canvas,为canvas设置命令监听者,实现接口CommandListener的方法,把缓冲区图像的内容绘制到画布上,画图部分代码:
int w = getWidth(); // 画布的宽度
int h = getHeight(); // 画布的高度
Image buffer = Image.createImage(w, h); // 用于绘图的缓冲图像
Graphics gc = buffer.getGraphics(); // 获取缓冲图像的图形环境
// 清除画布
public void clearScreen() {
gc.setColor(255,255,255); // 设置绘图颜色为白色
gc.fillRect(0,0,w,h); // 把缓冲图像填充为白色
gc.setColor(255,0,0); // 设置绘图颜色为红色
}
// 绘制直线
public void drawLine() {
setTitle("直线"); // 设置画布的标题
clearScreen(); // 清除画布
gc.drawLine(10,10,w-20,h-20); // 绘制黑色直线
gc.setColor(0,0,255); // 设置绘图颜色为蓝色
gc.drawLine(10,h/2,w-10,h/2); // 绘制蓝色直线
}
// 绘制弧
public void drawArc() {
setTitle("弧线和填充弧");
clearScreen();
gc.drawArc(5,5,w/2-20,h/2-20,60,216); // 绘制弧线
gc.drawArc(5,h/2-10,w/2-20,h/2-20,0,360); // 绘制圆
gc.setColor(0,0,255);
gc.fillArc(w/2,5,w/2-20,h/2-20,60,216); // 绘制填充弧线
gc.fillArc(w/2,h/2-10,w/2-20,h/2-20,0,360); // 绘制填充圆
}
// 绘制矩形
public void drawRect() {
setTitle("矩形和填充矩形");
clearScreen();
gc.drawRect(25,25,w/2-30,h/2-30); // 绘制矩形
gc.fillRect(w/2 25,25,w/2-30,h/2-30); // 绘制填充矩形
}
// 绘制圆角矩形
public void drawRoundRect() {
setTitle("圆角矩形和填充圆角矩形");
clearScreen();
gc.drawRoundRect(5,5,w-5-30,h/2-30,20,20); // 绘制圆角矩形
gc.setColor(0,0,255);
gc.fillRoundRect(5,h/2,w-30,h/2-30,20,20); // 绘制填充圆角矩形
}
// 绘制三角形
public void drawTriangle() {
setTitle("填充三角形");
clearScreen();
gc.fillTriangle(w/2, h/6, w/6, h/2, w/2, h/2);
}
// 绘制文字
public void drawText() {
setTitle("文字"); //设置标题
clearScreen();
gc.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_SMALL)); // 设置字体
gc.drawString("Hello World!",0,0,gc.TOP|gc.LEFT); // 使用当前字体绘制文字
gc.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD|Font.STYLE_UNDERLINED,Font.SIZE_LARGE));
gc.drawString("Hello World!",0,h/3,gc.TOP|gc.LEFT);
}
1