美文网首页
自定义雷达统计控件

自定义雷达统计控件

作者: 挥炎破魂 | 来源:发表于2017-07-08 07:51 被阅读0次

因为刚刚学习了Android画布操作,为了巩固一下,写了一个自定义雷达控件这个控件只暴露了一个一个最基本的接口,设置数据,对坐标轴数量,单位长度等统计要素都没考虑,如果以后有时间可能会添加进去。先上个截图

截图

上个核心代码

packagehuiyan.com.costomview_learn2;

importandroid.content.Context;

importandroid.graphics.Canvas;

importandroid.graphics.Color;

importandroid.graphics.Paint;

importandroid.graphics.Path;

importandroid.support.annotation.Nullable;

importandroid.util.AttributeSet;

importandroid.view.View;

importjava.util.ArrayList;

/**

* Created by lenovo on 2017/7/5.

*/

publicclassMyViewextendsView{

privatePaintmPaint;//绘制放射线的画笔

privatePainthexPaint;//绘制六边形的画笔

privatePaintpoPaint;//绘制数据的画笔

privateArrayListdatas=newArrayList<>();

publicMyView(Contextcontext) {

super(context);

init();

}

publicMyView(Contextcontext, @NullableAttributeSetattrs) {

super(context,attrs);

init();

}

publicMyView(Contextcontext, @NullableAttributeSetattrs,intdefStyleAttr) {

super(context,attrs,defStyleAttr);

init();

}

publicMyView(Contextcontext, @NullableAttributeSetattrs,intdefStyleAttr,intdefStyleRes) {

super(context,attrs,defStyleAttr,defStyleRes);

init();

}

publicvoidinit() {

/*

*对画笔进行初始化,进行各种设置

*/

mPaint=newPaint();

mPaint.setStyle(Paint.Style.STROKE);

mPaint.setStrokeWidth(5);

mPaint.setColor(Color.BLUE);

hexPaint=newPaint();

hexPaint.setStyle(Paint.Style.STROKE);

hexPaint.setColor(Color.GRAY);

poPaint=newPaint();

poPaint.setStyle(Paint.Style.FILL);

poPaint.setColor(getResources().getColor(R.color.red));

poPaint.setStrokeWidth(5);

poPaint.setAlpha(100);

}

@Override

protectedvoidonDraw(Canvascanvas) {

/*

*画图

*/

floatwidth=getWidth();

floatheight=getHeight();

super.onDraw(canvas);

datas.add((float)300);

datas.add((float)300);

datas.add((float)300);

datas.add((float)300);

datas.add((float)300);

datas.add((float)300);

canvas.translate(width/2,height/2);

PathLpath=newPath();

drawRad(Lpath,canvas,mPaint);

canvas.rotate(-120);//坐标系复位

canvas.scale(1,-1);//坐标系复位

//drawHex(canvas, hexPaint, 300);

for(inti=0;i<7;i++) {

drawHex(canvas,hexPaint,i*50);

canvas.rotate(-30);//坐标系复位

canvas.translate(-i*50,0);//坐标系复位

canvas.rotate(60);//坐标系复位

}

for(inti=0;i<5;i++) {

canvas.drawLine((float) (datas.get(i)*Math.cos(i*Math.PI/3)), (float) (datas.get(i)*Math.sin(i*Math.PI/3))

, (float) (datas.get(i+1)*Math.cos((i+1)*Math.PI/3)), (float) (datas.get(i+1)*Math.sin((i+1)*Math.PI/3)),poPaint);

}

canvas.drawLine((float) (datas.get(5)*Math.cos(-Math.PI/3)), (float) (datas.get(5)*Math.sin(-Math.PI/3))

, (float) (datas.get(0)*Math.cos(6*Math.PI/3)), (float) (datas.get(0)*Math.sin(6*Math.PI/3)),poPaint);

}

publicvoidsetDatas(ArrayListdatas) {

/*

*设置数据进行重绘

*/

this.datas=datas;

invalidate();

}

privatevoiddrawHex(Canvascanvas,Paintpaint,intx) {

canvas.translate(x,0);

canvas.rotate(30);

canvas.drawLine(0,0,0,x,paint);

for(inti=0;i<5;i++) {

canvas.translate(0,x);

canvas.rotate(60);

canvas.drawLine(0,0,0,x,paint);

}

}

privatevoiddrawRad(Pathpath,Canvascanvas,Paintpaint) {

path.moveTo(-300,0);

path.lineTo(300,0);

canvas.drawPath(path,paint);

canvas.rotate(60);

canvas.drawPath(path,paint);

canvas.rotate(60);

canvas.drawPath(path,paint);

}

}

相关文章

  • 自定义雷达统计控件

    因为刚刚学习了Android画布操作,为了巩固一下,写了一个自定义雷达控件这个控件只暴露了一个一个最基本的接口,设...

  • 关于一些自定义控件的记录

    一个三环评分控件 效果: 代码: 一个中心扩散雷达 控件 效果 代码 一个 带分数的进度条 自定义控件 效果: 代...

  • 完全自定义控件-自定义雷达扫描控件(学习Shader、Matri

    自定义雷达扫描控件 效果展示 涉及知识点 Shader类 在Android中,提供了Shader类专门用来渲染图像...

  • Android自定义控件:通用验证码输入框

    关于自定义控件的基础知识-- 可自行查询资料。-- 也可关注我们,后期介绍自定义统计图表时,会统一介绍自定义控件的...

  • 自定义控件之雷达图

    雷达图,城里人管她叫戴布拉图 某杀的个人信息那里有个。一看就是稳如狗 某度的个人图谱一看就是不热爱生活,不关心政治...

  • Flutter雷达图package

    本文主要用Flutter实现雷达统计图,支持自定义颜色、形状、背景图等效果。大家可在github查看代码:http...

  • 组合控件2——海贼王选项菜单

    之前的自定义控件——初识自定义控件,我们了解到了自定义控件分为三种,自制控件,组合控件,拓展控件。而我们在自制控件...

  • 自制控件3——仿qq侧滑删除

    在自定义控件——初识自定义控件里面,我们已经对自定义控件进行描述和分类。其分类分别是 自制控件 组合控件 拓展控件...

  • 自制控件2 —— 自制控件 仿qq侧滑菜单

    在自定义控件——初识自定义控件里面,我们已经对自定义控件进行描述和分类。其分类分别是 自制控件 组合控件 拓展控件...

  • 组合控件1—— 设置框

    之前的自定义控件——初识自定义控件,我们了解到了自定义控件分为三种,自制控件,组合控件,拓展控件。 而我们在自制控...

网友评论

      本文标题:自定义雷达统计控件

      本文链接:https://www.haomeiwen.com/subject/szpiqxtx.html