电脑(windows)
eclipse+android编程环境
首先新建一个android项目名字为CanvasShow,其余参数可以自己配置,点击完成,形成项目信息
配置main.xml,在这里main.xml 基本不用修改,只需增加
CanvasShowInfo中实现方法: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init() { LinearLayout layout=(LinearLayout) findViewById(R.id.root); final CanvasDraw view=new CanvasDraw(this); view.setMinimumHeight(500); view.setMinimumWidth(300); //通知view组件重绘 这个很重要! view.invalidate(); layout.addView(view); } 那么CanvasDraw.java中实现了什么呢?
声明CanvasDraw.java 继承View,重写其中的onDraw方法。比如画圆: // 创建画笔 Paint p = new Paint(); p.setColor(Color.RED);// 设置红色 canvas.drawText('画圆:', 10, 20, p);// 画文本 canvas.drawCircle(40, 40, 15, p);// 分别是 圆心的x,y坐标,15为半径 p.setAntiAlias(true);// 设置画笔的锯齿效果。 true是去除,大家一看效果就明白了 canvas.drawCircle(100, 120, 50, p);// 分别是 圆心的x,y坐标,50为半径从图中可以看见,去除锯齿的图形更加圆滑。下面是相对应的效果图
canvas.drawText('画矩形:', 10, 90, p); p.setColor(Color.BLUE);// 设置灰色 p.setStyle(Paint.Style.FILL);//设置填满 canvas.drawRect(60, 60, 80, 80, p);// 正方形 canvas.drawRect(70, 90, 300, 100, p);// 长方形 // drawRect函数前两个参数是一个顶点的坐标,后两个参数是对顶点的坐标,相对应的效果图
canvas.drawText('画扇形:', 120, 120, p); // 设置渐变色 这个扇形的颜色是改变的 / Shader mShader = new LinearGradient(0, 0, 100, 100, new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW, Color.LTGRAY }, null, Shader.TileMode.REPEAT); // 一个材质,打造出一个线性梯度沿著一条线。 p.setShader(mShader); p.setColor(Color.BLUE); RectF oval2 = new RectF(60, 100, 200, 240);// 设置个新的长方形,扫描测量 canvas.drawArc(oval2, 200, 130, true, p); // 画弧,第一个参数是RectF:该类是第二个参数是角度的开始,第三个参数是多少度,第四个参数是真的时候画扇形,是假的时候画弧线 其中:public void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)oval :指定圆弧的外轮廓矩形区域。startAngle: 圆弧起始角度,单位为度。sweepAngle: 圆弧扫过的角度,顺时针方向,单位为度。useCenter: 如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形。paint: 绘制圆弧的画板属性,如颜色,是否填充等。