android绘图

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;


public class MyView extends View{


public MyView(Context context, AttributeSet attrs) {
super(context, attrs);

}
//重写该方法,进行绘图
@SuppressLint("DrawAllocation") @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.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(4);
//获取组件的宽度
int viewWidth=this.getWidth();
//绘制圆形 X轴坐标 Y轴坐标 半径  画笔
canvas.drawCircle(viewWidth/10+10, viewWidth/10+10, viewWidth/10, paint);
//绘制正方形 左边距 上边距 右边距 下边距
//宽: x = 右边距-左边距 viewWidth/5   高:y=下边距-上边距viewWidth/5
canvas.drawRect(10, viewWidth/5+20, viewWidth/5+10, viewWidth*2/5+20, paint);
//绘制矩形
canvas.drawRect(10, viewWidth*2/5+30, viewWidth/5+10, viewWidth/2+30, paint);
//绘制圆角矩形
RectF re1=new RectF(10, viewWidth/2+40, viewWidth/5+10, viewWidth*3/5+40);
//rect:RectF对象 rx:x方向上的圆角半径 ry:y方向上的圆角半径
canvas.drawRoundRect(re1, 15, 15, paint);
//绘制椭圆
RectF re2=new RectF(10, viewWidth*3/5+50, 10+viewWidth/5, viewWidth*7/10+50);
canvas.drawOval(re2, paint);
//定义一个Path对象,封装成一个三角形
Path path1=new Path();
//设置开始位置
path1.moveTo(10, viewWidth*9/10+60);
//绘制直线
path1.lineTo(viewWidth/5+10, viewWidth*9/10+60);
path1.lineTo(viewWidth/10+10, viewWidth*7/10+60);
//回到初始点形成封闭的曲线
path1.close();
canvas.drawPath(path1, paint);
//定义一个path对象,封装成一个五角形
Path path2=new Path();
//设置开始位置
path2.moveTo(10+viewWidth/15, 70+viewWidth*9/10);
path2.lineTo(10+viewWidth*2/15, 70+viewWidth*9/10);
path2.lineTo(10+viewWidth/5, 70+viewWidth);
path2.lineTo(10+viewWidth/10, viewWidth*11/10+70);

path2.lineTo(10, viewWidth+70);
path2.close();
canvas.drawPath(path2, paint);
//设置填充风格后绘制
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
//绘制圆形
canvas.drawCircle(viewWidth*3/10+20, viewWidth/10+10, viewWidth/10, paint);
//绘制正方形
canvas.drawRect(viewWidth/5+20, viewWidth/5+20, viewWidth*2/5+20, viewWidth*2/5+20, paint);
//绘制矩形
canvas.drawRect(viewWidth/5+20, viewWidth*2/5+30, viewWidth*2/5+20, viewWidth/2+30, paint);
//绘制圆角矩形
RectF rec21=new RectF(viewWidth/5+20, viewWidth/2+40,20+ viewWidth*2/5, viewWidth*3/5+40);
canvas.drawRoundRect(rec21, 15, 15, paint);
//绘制椭圆
RectF rec22=new RectF(20+viewWidth/5, 50+viewWidth*3/5, 20+viewWidth*2/5, viewWidth*7/10+50);
canvas.drawOval(rec22, paint);
//定义一个Path对象,封闭成三角形
Path path3=new Path();
path3.moveTo(20+viewWidth/5, viewWidth*9/10+60);
path3.lineTo(viewWidth*2/5+20, viewWidth*9/10+60);
path3.lineTo(viewWidth*3/10+20, viewWidth*7/10+60);
path3.close();
canvas.drawPath(path3, paint);
//设置字体大小后绘制
paint.setTextSize(48);
paint.setShader(null);
//绘制7个字符串
canvas.drawText("圆形", 60+viewWidth*3/5, viewWidth/10+10, paint);

}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值