Android PieChart(饼形图),你的技术真的到天花板了吗
前言
现在几乎每个it公司都在开发移动产品,我最早知道Android还是在13年成都某学院上大学的时候,从新闻上知道有这么一家公司,创始人安迪·鲁宾很有名,但安卓到底是做什么的,我并没有关注。
到2014年毕业的时候,Android已经发展到了4.4 版本,百度了一下Android,知道了(应用)开发采用的是Java语言。我当时学过 C,C++,对java有些了解,从成都辗转来到北京,找到的工作正是开发一款Android应用(生活服务类)。这时我有了一个HTC的安卓最新版手 机。
现在做Android移动开发已经有六年时间,从一个什么都不懂的小程序员到现在的项目经理,其中甘苦自知,对Android开发和对Android程序员的职业发展有一些自己的感悟,在这里愿与大家分享和讨论。
// pie_chart.invalidate();
// pie_chart.getLegend().setEnabled(false);//设置比例图
// pie_chart.animateX(1400);
4.2 设置数据的大小和颜色
private void setPieData1(MyPieChart chart,Map<String, Object> formatDatas)
{
ArrayList entries = new ArrayList();
for (Map.Entry<String,Object> entry:formatDatas.entrySet())
{
String s = entry.getValue().toString();
double x = Integer.valueOf(s).intValue();
i = i + x;
}
for (Map.Entry<String,Object> entry:formatDatas.entrySet())
{
String s = entry.getValue().toString();
double y = Integer.valueOf(s).intValue();
double f = y/i;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
double result = Math.round(f1 * 100) / 100d; // 12345.68
entries.add(new PieEntry((float) f1,entry.getKey().toString() + “:” + entry.getValue().toString() + “人” + “,” + “占比” + “:” + result + “%”));
}
//^^^
PieDataSet dataSet = new PieDataSet(entries, “Election Results”);
dataSet.setSliceSpace(1f); //不同块之间的间距
dataSet.setSelectionShift(7f);//选中时候突出的间距
//dataSet.setValueLineWidth(10f);
ArrayList colors = new ArrayList();
colors.add(getResources().getColor(R.color.mintcream));
colors.add(getResources().getColor(R.color.bai));
colors.add(getResources().getColor(R.color.black_blue));
colors.add(getResources().getColor(R.color.colorAccent));
colors.add(getResources().getColor(R.color.colorPrimary));
colors.add(getResources().getColor(R.color.orange));
dataSet.setColors(colors);
//dataSet.setValueLinePart1OffsetPercentage(100f);//Part:部分,Percentage:百分比
//dataSet.setValueLineVariableLength(true);//Variable:变量,Length:长度
dataSet.setValueLinePart1Length(0.6f);
dataSet.setValueLinePart2Length(0.2f);
dataSet.setHighlightEnabled(true);
//dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);//标签显示在外面,关闭显示在饼图里面
//dataSet.setValueLineColor(0xff000000); //设置指示线条颜色,必须设置成这样,才能和饼图区域颜色一致
dataSet.setValueLineColor(Color.BLACK);
PieData data = new PieData(dataSet);
data.setValueFormatter(new PercentFormatter());//Formatter:格式化程序,Percent,百分比
data.setValueTextSize(12f);
data.setHighlightEnabled(true);
chart.setData(data);
chart.highlightValues(null);
chart.invalidate();
//^^^
// for (IDataSet<?> set : chart.getData().getDataSets())
// set.setDrawValues(!set.isDrawValuesEnabled());
// chart.invalidate();
chart.getLegend().setEnabled(false);//设置比例图
chart.animateX(1400);
//^^^
}
4.3 性别如下:
case R.id.button1:
Map<String, Object> formatDatas1 = new HashMap<>();
StringBuilder key1=new StringBuilder();
key1.setLength(0);
key1.append(“男人”);
formatDatas1.put(key1.toString(),“675137”);
key1.setLength(0);
key1.append(“女人”);
formatDatas1.put(key1.toString(),“564781”);
setPieData1(pie_chart,formatDatas1);
break;
4.4 属性如下:
case R.id.button2:
Map<String, Object> formatDatas2 = new HashMap<>();
StringBuilder key2=new StringBuilder();
key2.setLength(0);
key2.append(“无”);
formatDatas2.put(key2.toString(),“0”);
key2.setLength(0);
key2.append(“学生1”);
formatDatas2.put(key2.toString(),“82429”);
key2.setLength(0);
key2.append(“学生2”);
formatDatas2.put(key2.toString(),“10201”);
key2.setLength(0);
key2.append(“学生2”);
formatDatas2.put(key2.toString(),“121606”);
key2.setLength(0);
key2.append(“学生3”);
formatDatas2.put(key2.toString(),“159966”);
key2.setLength(0);
key2.append(“学生4”);
formatDatas2.put(key2.toString(),“12892”);
key2.setLength(0);
key2.append(“学生5”);
formatDatas2.put(key2.toString(),“246117”);
setPieData1(pie_chart,formatDatas2);
break;
4.5 原因如下:
case R.id.button3:
Map<String, Object> formatDatas3 = new HashMap<>();
面试复习笔记:
这份资料我从春招开始,就会将各博客、论坛。网站上等优质的Android开发中高级面试题收集起来,然后全网寻找最优的解答方案。每一道面试题都是百分百的大厂面经真题+最优解答。包知识脉络 + 诸多细节。
节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
《960页Android开发笔记》
《1307页Android开发面试宝典》
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
》**
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
[外链图片转存中…(img-hC4ESZkm-1649748563324)]
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
Android开发不会这些?如何面试拿高薪!
Android PieChart(饼形图),你的技术真的到天花板了吗相关推荐
- 厉害了!你的技术真的到天花板了吗?年薪50W
这篇文章最近很火,我也有一些自己的看法:现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较666的技术,这些技术我们称之为开源框架. 比如 ...
- 2021年Java开发突破20k有哪些有效的路径,你的技术真的到天花板了吗
引言 众所周知,软件系统有三高:**高并发.高性能.高可用.**三者既有区别也有联系,门门道道很多,全面讨论可以大战三天三夜. 高并发对于Java开发者来说都不陌生,每年天猫双十一,秒杀大促等场景阿里 ...
- docker与gosu,你的技术真的到天花板了吗
执行命令ps -ef查看redis服务,结果如下: root@122c2df16bbb:/data# ps -ef UID PID PPID C STIME TTY TIME CMD redis 1 ...
- 【转载】Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
[转载]Android提醒微技巧,你真的了解Dialog.Toast和Snackbar吗? 转载请注明出处:http://blog.csdn.net/guolin_blog/article/detai ...
- Android热补丁动态修复技术
Android热补丁动态修复技术(一):从Dex分包原理到热补丁 一.参考 博文:安卓App热补丁动态修复技术介绍--by QQ空间终端开发团队 博文:Android dex分包方案--by 猫的午 ...
- Android类动态加载技术
Android类动态加载技术 Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求.但是有些特殊问题,常常引发我们进一步的沉思.我们从沉思中产生顿悟,从而产生新的技术形式 ...
- 【Android APT】编译时技术 ( 开发编译时注解 )
文章目录 一.编译时注解 二.编译时注解 使用 三.注解的保留时间 四.博客资源 一.编译时注解 上一篇博客 [Android APT]编译时技术 ( 编译时注解 和 注解处理器 依赖库 ) 中创建并 ...
- 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )
文章目录 一.编译时注解和注解处理器 二.创建 编译时注解 和 注解处理器 三.添加 编译时注解 和 注解处理器 依赖库依赖 四.博客资源 一.编译时注解和注解处理器 上一篇博客 [Android A ...
- 技术真的就不是那么重要了
看得我泪流满面,想想也是,那些有钱的,哪个是懂技术的啊. 今天感慨颇多,作为一个coder,干了8年多,确实可以谈谈了.除非你进入微软.google等之类的,那个LZ就不谈了.大部分coder,如LZ ...
最新文章
- 简书 java jvm_JVM介绍
- CString转换成char*
- cocosStudio制作ScrollView并在cocos2dx 3.0中使用。
- 第二章 搭建Android开发环境 读书笔记
- C#多线程与并行编程方面的电子书,中英文版本
- 阿里云SLB负载均衡与使用SSL域名证书
- Java8————日期时间 API
- linux自启动配置文件,Linux中如何设置服务自启动?
- redis DB操作
- 使用bat向文件的第一行中写入内容
- python代理ip连接失败_遇到问题--python--爬虫--使用代理ip第二次获取代理ip失败
- 苹果4s怎么越狱_越狱软件续签教程
- tekla钢结构算量_钢结构、Tekla及建筑工业化厂商对Tekla软件的开发和应用
- Guava的两种本地缓存策略
- Linux 添加网卡
- AUTOSAR MCAL详解:FLS
- upc 去除干员 (delete)
- SQL语句中,有了别名不能再用原名,需要使用别名
- 第一章 huggingface简介
- ePartsize 过程全记录