您的位置:首页 > 移动开发 > Android开发

Android 绘画基础:Canvas Paint 类

2016-03-30 22:56 330 查看
/**
* Author:YJQ on 2016/3/30 21:44
* Description:Android 绘画基础 Canvas .Paint .path
* path:预先在View 上将N个点连成一条路径,然后调用Canvas 的drawPath(),沿着路径绘制图像
*/
public class DrawView extends View{

public DrawView(Context context, AttributeSet attrs) {
super(context, attrs);
}

//重写该方法,进行绘画
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//把整张画布绘制成白色
canvas.drawColor(Color.WHITE);
Paint paint=new Paint();
//去锯齿
paint.setAntiAlias(true);
paint.setColor(Color.BLUE);
//paint的填充风格
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(3);
//绘制圆形
canvas.drawCircle(40, 40, 30, paint);
//绘制正方形
canvas.drawRect(10,80,70,140,paint);
//绘制矩形
canvas.drawRect(10,150,70,190,paint);
//绘制圆角矩形
RectF ref=new RectF(10,200,70,230);
canvas.drawRoundRect(ref,15,15,paint);
//绘制椭圆
RectF ref1=new RectF(10,240,70,270);
canvas.drawOval(ref1,paint);

//定义一个Path 对象,封闭成一个三角形
Path path1 =new Path();
path1.moveTo(10,340);
path1.lineTo(70, 340);
path1.lineTo(40, 290);
path1.close();
//根据path 进行绘制,绘制三角形
canvas.drawPath(path1,paint);

//定义一个path 对象,封闭成一个五角
Path path2=new Path();
path2.moveTo(26, 360);
path2.lineTo(54, 360);
path2.lineTo(70, 392);
path2.lineTo(40, 420);
path2.lineTo(10, 392);
path2.close();
canvas.drawPath(path2, paint);

///////////设置填充风格后绘制/////////////////
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
canvas.drawCircle(120, 40, 30, paint);
canvas.drawRect(90, 80, 150, 140, paint);
///////////位Paint设置渐变器后绘制/////////////////
Shader mShader = new LinearGradient(0,0,40,60,
new int[]{Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW},
null, Shader.TileMode.REPEAT);
paint.setShader(mShader);
//设置阴影
paint.setShadowLayer(45, 10, 10, Color.GRAY);
//绘制圆形
canvas.drawCircle(200, 40, 30, paint);
//绘制正方形
canvas.drawRect(170, 80, 230, 140, paint);
///////////设置字体大小后绘制/////////////////
paint.setTextSize(24);
paint.setShader(null);
//绘制字符串
canvas.drawText("圆形",240,50,paint);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: