Android自定义View:雷达图/蜘蛛网图
运行效果图
雷达图结构分析
对雷达图进行结构拆分,得到一个清晰的思路,这些结构也就是需要绘制的部分。为了能够有更好的扩展性,我将它们作为可定制的属性暴露出来,以下是结构属性表:
结构 | 相关属性 | 描述 |
---|---|---|
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:雷达图/蜘蛛网图相关推荐
- Android 自定义View -- 简约的折线图
转载请注明出处:http://write.blog.csdn.net/postedit/50434634 接上篇 Android 圆形百分比(进度条) 自定义view 昨天分手了,不开心,来练练自定义 ...
- Android自定义View实现三角到八角的属性分布图-雷达图(蜘蛛网图)
Android自定义View实现三角到八角的属性分布图-雷达图(蜘蛛网图) 前言 自定义View的关键点 绘制多边形 结尾 前言 刚开始学习自定义view,简单完成了一个属性分布器,可以实现三条到八条 ...
- android 自定义view: 蛛网/雷达图(三)
本系列自定义View全部采用kt 系统mac android studio: 4.1.3 kotlin version1.5.0 gradle: gradle-6.5-bin.zip 本篇效果: 蛛网 ...
- android自定义View: 饼状图绘制(四)
本系列自定义View全部采用kt 系统mac android studio: 4.1.3 kotlin version1.5.0 gradle: gradle-6.5-bin.zip 本篇效果: 画矩 ...
- android 轨迹生成图,Android自定义View实现公交成轨迹图
本文实例为大家分享了Android自定义View实现公交成轨迹图的具体代码,供大家参考,具体内容如下 总体分析下:水平方向recyclewview,item包含定位点,站台位置和站台名称. 下面看实现 ...
- Android自定义View——实现理财类APP七日年化收益折线图效果
这段时间的自定义View学习,学会了绘制柱状图.绘制折线图.绘制进度控件,那我们今天就来聊聊另外一种自定义的View,这就是我们常见的七日年化收益折线图效果.先看看长什么样. 这就是效果图了,元素相对 ...
- Android 自定义View合集
http://blog.csdn.net/u011507982/article/details/51199644 自定义控件学习 https://github.com/GcsSloop/Androi ...
- Android 自定义View —— Canvas
上一篇在android 自定义view Paint 里面 说了几种常见的Point 属性 绘制图形的时候下面总有一个canvas ,Canvas 是是画布 上面可以绘制点,线,正方形,圆,等等,需要和 ...
- Android自定义View:ViewGroup(三)
自定义ViewGroup本质是什么? 自定义ViewGroup本质上就干一件事--layout. layout 我们知道ViewGroup是一个组合View,它与普通的基本View(只要不是ViewG ...
- android代码实现手机加速功能,Android自定义View实现内存清理加速球效果
Android自定义View实现内存清理加速球效果 发布时间:2020-09-21 22:21:57 来源:脚本之家 阅读:105 作者:程序员的自我反思 前言 用过猎豹清理大师或者相类似的安全软件, ...
最新文章
- Angular学习(一):模板与数据绑定
- oralce 异常处理 exception
- windows平台桌面开发技术
- python可变类型和不可变类型_Python-5 可变类型与不可变类型
- linux安装elasticsearch5.5
- 使用Spring Boot打造文件文档在线预览平台
- redis远程连接超时
- html转json有危险字符,javascript
- linux下mysql数据的导出和导入
- Linux系统中用源代码编译安装软件和查看进程
- 保研之路——北航网安学院直硕夏令营
- hmm 隐马尔可夫模型讲解
- 打印机服务器找不到网络路径,分享0x80070035找不到网络路径的解决方法
- python二进制转十进制函数_python基础教程之python基础教程之python进制转换(二进制、十进制...
- SpringCLoud+redis+es高并发项目《九》(Spring Security Oauth2 JWT)
- 天文相关词汇的英语翻译
- Freemarker数字格式化总结
- crt 生成pem_linux下pem转crt命令_crt转pem方法
- 有容乃大:楚庄王(第二篇
- 运营推广-百度快照收录技巧