运行效果图

雷达图结构分析

对雷达图进行结构拆分,得到一个清晰的思路,这些结构也就是需要绘制的部分。为了能够有更好的扩展性,我将它们作为可定制的属性暴露出来,以下是结构属性表:

结构 相关属性 描述
bone boneColor 骨架颜色
- boneWidth 骨架宽度
net netColor 网线颜色
- netWidth 网线宽度
node nodeColor 结点颜色
- nodeRadius 结点半径
cover coverColor 覆盖层(由各种属性的值组成的覆盖层)颜色
text textColor 文本颜色
- textSize 文本大小
- labelMargin 文本与雷达图间距

如何使用?以下是上面效果图的代码:

xml

<win.smartown.library.radarview.RadarViewandroid:id="@+id/radar"android:layout_width="match_parent"android:layout_height="match_parent"app:boneColor="#5392FF"app:boneWidth="0.5dp"app:coverColor="#380392FF"app:labelMargin="10dp"app:netColor="#5392FF"app:netWidth="1dp"app:nodeColor="#53AFFF"app:nodeRadius="3dp"app:textColor="#868686"app:textSize="12sp">
</win.smartown.library.radarview.RadarView>
复制代码

设置适配器

        RadarView radarView = findViewById(R.id.radar);radarView.setAdapter(new RadarAdapter() {@Overridepublic int getItemCount() {return 12;}@Overridepublic int getMaxValue() {return 5;}@Overridepublic int getValue(int position) {if (position > getMaxValue()) {return getMaxValue();}return position;}@Overridepublic String getName(int position) {return "Label" + position;}});
复制代码

难点总结

  • 主要就是要计算各个点的坐标,每一个交叉点的坐标需要计算出来,好在这是一个非常标准的数学模型,可以通过公式计算出来,以下是计算坐标的代码:
//[centerX,centerY]为中心点坐标,radius为待求坐标到中心点的距离
float x = (float) (centerX + radius * Math.cos(degree * Math.PI / 180));
float y = (float) (centerY + radius * Math.sin(degree * Math.PI / 180));
复制代码

最后放上源码

github.com/smartown/Cu…

转载于:https://juejin.im/post/5c04cb7151882517165dc6c8

Android自定义View:雷达图/蜘蛛网图相关推荐

  1. Android 自定义View -- 简约的折线图

    转载请注明出处:http://write.blog.csdn.net/postedit/50434634 接上篇 Android 圆形百分比(进度条) 自定义view 昨天分手了,不开心,来练练自定义 ...

  2. Android自定义View实现三角到八角的属性分布图-雷达图(蜘蛛网图)

    Android自定义View实现三角到八角的属性分布图-雷达图(蜘蛛网图) 前言 自定义View的关键点 绘制多边形 结尾 前言 刚开始学习自定义view,简单完成了一个属性分布器,可以实现三条到八条 ...

  3. android 自定义view: 蛛网/雷达图(三)

    本系列自定义View全部采用kt 系统mac android studio: 4.1.3 kotlin version1.5.0 gradle: gradle-6.5-bin.zip 本篇效果: 蛛网 ...

  4. android自定义View: 饼状图绘制(四)

    本系列自定义View全部采用kt 系统mac android studio: 4.1.3 kotlin version1.5.0 gradle: gradle-6.5-bin.zip 本篇效果: 画矩 ...

  5. android 轨迹生成图,Android自定义View实现公交成轨迹图

    本文实例为大家分享了Android自定义View实现公交成轨迹图的具体代码,供大家参考,具体内容如下 总体分析下:水平方向recyclewview,item包含定位点,站台位置和站台名称. 下面看实现 ...

  6. Android自定义View——实现理财类APP七日年化收益折线图效果

    这段时间的自定义View学习,学会了绘制柱状图.绘制折线图.绘制进度控件,那我们今天就来聊聊另外一种自定义的View,这就是我们常见的七日年化收益折线图效果.先看看长什么样. 这就是效果图了,元素相对 ...

  7. Android 自定义View合集

    http://blog.csdn.net/u011507982/article/details/51199644 自定义控件学习  https://github.com/GcsSloop/Androi ...

  8. Android 自定义View —— Canvas

    上一篇在android 自定义view Paint 里面 说了几种常见的Point 属性 绘制图形的时候下面总有一个canvas ,Canvas 是是画布 上面可以绘制点,线,正方形,圆,等等,需要和 ...

  9. Android自定义View:ViewGroup(三)

    自定义ViewGroup本质是什么? 自定义ViewGroup本质上就干一件事--layout. layout 我们知道ViewGroup是一个组合View,它与普通的基本View(只要不是ViewG ...

  10. android代码实现手机加速功能,Android自定义View实现内存清理加速球效果

    Android自定义View实现内存清理加速球效果 发布时间:2020-09-21 22:21:57 来源:脚本之家 阅读:105 作者:程序员的自我反思 前言 用过猎豹清理大师或者相类似的安全软件, ...

最新文章

  1. Angular学习(一):模板与数据绑定
  2. oralce 异常处理 exception
  3. windows平台桌面开发技术
  4. python可变类型和不可变类型_Python-5 可变类型与不可变类型
  5. linux安装elasticsearch5.5
  6. 使用Spring Boot打造文件文档在线预览平台
  7. redis远程连接超时
  8. html转json有危险字符,javascript
  9. linux下mysql数据的导出和导入
  10. Linux系统中用源代码编译安装软件和查看进程
  11. 保研之路——北航网安学院直硕夏令营
  12. hmm 隐马尔可夫模型讲解
  13. 打印机服务器找不到网络路径,分享0x80070035找不到网络路径的解决方法
  14. python二进制转十进制函数_python基础教程之python基础教程之python进制转换(二进制、十进制...
  15. SpringCLoud+redis+es高并发项目《九》(Spring Security Oauth2 JWT)
  16. 天文相关词汇的英语翻译
  17. Freemarker数字格式化总结
  18. crt 生成pem_linux下pem转crt命令_crt转pem方法
  19. 有容乃大:楚庄王(第二篇
  20. 运营推广-百度快照收录技巧

热门文章

  1. 电话来电显示WEB组件
  2. 热力学分布用matlab,热力学matlab
  3. DirectShow摄像头采集
  4. 体育赛事视频直播方案
  5. 中国高强度不锈钢行业供需状况及竞争趋势预测报告(2022-2027年)
  6. hidden for mac(桌面文件隐藏小工具)
  7. 8)Python模块:tensorflow
  8. Android开发实例——倒计时器——Android多线程编程
  9. 您试图连接的 SQL Server 2016 实例未安装
  10. 网站 tooltip和title提示美化教程