android Paint 和Canvas的简单使用

来源:互联网 发布:手机淘宝怎么关注达人 编辑:程序博客网 时间:2024/04/29 20:46
public class DrawView extends View {    public DrawView(Context context, AttributeSet attrs) {        super(context, attrs);    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        Paint paint = new Paint();//定义默认画笔        //线性渐变        Shader shader = new LinearGradient(0,0,50,50, Color.RED,Color.GREEN,Shader.TileMode.MIRROR);        paint.setShader(shader);//为画笔设置渐变器        canvas.drawRect(10,70,100,150,paint);//绘画一个矩形        //径向渐变        shader = new RadialGradient(160,110,50,Color.RED,Color.GREEN,Shader.TileMode.MIRROR);        paint.setShader(shader);//为画笔设置渐变器        canvas.drawRect(115,70,205,150,paint);        //角度渐变        shader = new SweepGradient(265,110,new int[]{Color.RED,Color.GREEN,Color.BLUE},null);        paint.setShader(shader);        canvas.drawRect(220,70,310,150,paint);    }

}

画奥运五环:

canvas.drawColor(Color.WHITE);//指定画布背景色为白色Paint paint = new Paint();//创建画笔paint.setAntiAlias(true);//使用抗锯齿功能paint.setStrokeWidth(3);//设置笔触的宽度paint.setStyle(Paint.Style.STROKE);//设置填充样式为描边paint.setColor(Color.BLUE);canvas.drawCircle(50,50, 30, paint);//绘制蓝色的圆形paint.setColor(Color.YELLOW);canvas.drawCircle(100,50,30,paint);//绘制黄色的圆形paint.setColor(Color.BLACK);canvas.drawCircle(150,50,30,paint);//绘制黑色的圆形paint.setColor(Color.GREEN);canvas.drawCircle(75,90,30,paint);//绘制绿色的圆形paint.setColor(Color.RED);canvas.drawCircle(125,90,30,paint);//绘制红色的圆形
绘制曲线
Paint paint = new Paint();//创建画笔paint.setAntiAlias(true);//设置抗锯齿paint.setColor(Color.RED);//设置画笔颜色paint.setTextSize(18);//设置文字大小paint.setStyle(Paint.Style.STROKE);//设置填充方式为描边//绘制圆形路径图Path path = new Path();//创建实例化一个Path对象path.addCircle(70,70,40,Path.Direction.CCW);//添加逆时针圆形路径canvas.drawPath(path,paint);//绘制路径//绘制折线路径Path pathLine = new Path();pathLine.moveTo(150,100);//设置起始点pathLine.lineTo(200, 45);//设置第一个直线结束点pathLine.lineTo(250, 100);//设置第二个直线结束点pathLine.lineTo(300,80);//设置第三个直线结束点canvas.drawPath(pathLine,paint);//绘制路径//绘制三角路径Path pathTr = new Path();pathTr.moveTo(350,80);//设置起始点pathTr.lineTo(400, 0);//设置第一条边的结束点也就是第二条边的起始点pathTr.lineTo(450, 80);//设置第二条的结束点也就是第三条边的起始点pathTr.close();canvas.drawPath(pathTr,paint);//绘制绕路径的环形文字String str = "嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿";Path path1 = new Path();path.addCircle(550,100,48,Path.Direction.CW);//添加顺时针圆形路径paint.setStyle(Paint.Style.FILL);//设置画笔的 填充方式canvas.drawTextOnPath(str,path1,0,-18,paint);

<com.weipeng.xuexi20160119.DrawView    android:layout_width="wrap_content"    android:layout_height="wrap_content" />

0 0
原创粉丝点击