版本:MPAndroidChart v3.1.0

这是个很强大的图表,不同的版本对应的API会不一样。

需求描述:

  用了柱状图,但要实现这样的功能,通过不同的门店来区分不同的柱子的颜色,并且柱子上文字也要用同样的颜色

问题说明:

惊奇的发现,柱子的颜色是对的,但是上面显示的文字的颜色,有二个调了个。

解决思路:

BarDataSet类
setColors  这个方法是用来设置柱子的颜色
setValueTextColors  这个方法是用来设置柱状图上文字说明的颜色

然而不同的需求,可能会有不同的要求,我目前的要求是同样的柱子的颜色需一致,就是同样的颜色了。
二个方法的参数都是List<Integer>colors
也就是说是一个颜色的id
colors.add(Color.parseColor(Chart_colors[xVal.indexOf(key)]));

  

说明:xVal里面我定义了存放不同的门店

Chart_colors是存放的自定义#开头的16进制颜色值,比如#FFFF0000,不透明红色值。

//柱子的颜色
dataSet.setColors(colors);
//柱子上文字的颜色
dataSet.setValueTextColors(colors);

跟踪了以后,发现BaseDataSet是个  abstract class , 找到了方法

@Override
public int getValueTextColor(int index) {
//这里是显示的index以及总的记录数
Log.i("test",index + ":" + mValueColors.size());
//这里显示的是原先自定好的,返回颜色值的index取%后的值
//Log.i("test","valueTextcolor: "+index % mValueColors.size()); 0 2 4 6 8 10 1 3 5
//我要的是0 1 2 3 4 5 6 7 8 9 10 11
//index : 0 2 4 6 8 10 12 14 16 18 20
// return mValueColors.get(index % mValueColors.size());
//这样暂时解决了我的问题
return mValueColors.get(index / 2);
}

重新run,ok。

到目前为止,是暂时解决了这个图表的问题,但是会惊奇的发现,其它的图表直接就会崩。

看来这个不是很好的解决方案。:)

------------------------------------------------------------------

下面是另一个解决方法:

尝试了几种方法

发现几点:

1、折线图是以0,1,2,3,4,5……

2、非水平的柱状图也是以0,1,2,3,4,5……

既然垂直的柱状图是以0,1,2,3,4,5……按顺序的格式进行的,那就换成这种的就行。

而且这个也比较方便,只要修改几个地方:

1、xml中将 horizontalBarChart之前的horizontal去掉。

2、将代码中的horizontal也去掉,运行即可。看下面

可以发现已经是我们要实现的样子了。

MPAndroidChart柱子上的文字的颜色dataSet.setValueTextColors的更多相关文章

  1. iOS 设置导航栏的颜色和导航栏上文字的颜色

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  2. navigation和tabbar上的文字.图片 自定义

    [[UITabBarItem appearance] setTitleTextAttributes:@{ UITextAttributeTextColor : [UIColor blackColor] ...

  3. iOS 设置导航栏之二(设置导航栏的颜色、文字的颜色、左边按钮的文字及颜色)

                      #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicati ...

  4. CSS实现Div透明,而显示在上面的文字不透明,但也可看到显示在下面的图片内容

    CSS实现Div透明,而显示在上面的文字不透明,但也可看到显示在下面的图片内容,DiV透明其实挺简单,主要是为background定义opacity属性,一般这个是最大值是1,数值越接近1,则越不透明 ...

  5. C#图像处理(1):在图片上加文字和改变文字的方向

    C#在图片上加文字,代码如下: /// <summary> /// 图片上方加文字,文字将会被180度反转 /// </summary> /// <param name= ...

  6. 怎么在PDF上进行文字修改

    文件相信大家不论是工作中还是在学习生活中都会有遇到,有时候我们会遇到PDF文件中的文字有时候会有错误的时候,这个时候就需要对修改PDF文件上的文字,那么具体要怎么做呢,PDF文件需要借助软件才可以编辑 ...

  7. C#实现图片叠加,图片上嵌入文字,文字生成图片的方法

    /// <summary>     /// 图片叠加     /// </summary>     /// <param name="sender"& ...

  8. Mac Mini2018 开箱(视频)全球首映!Kindle 开箱一并奉上(文字)

    2018.12.9更新 为了方便大家收看我的这个开箱视频,我把视频放在知乎上了,可以参考如下连接即可观看啦: https://zhuanlan.zhihu.com/p/51677467 ------- ...

  9. 函数putText()在图片上写文字

    #include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...

随机推荐

  1. VS2017新建或拷贝项目编译时出现:找不到 Windows SDK 版本8.1.请安装所需的版本的 Windows SDK

    VS2017新建或拷贝项目编译时出现:找不到 Windows SDK 版本8.1.请安装所需的版本的 Windows SDK 或者在项目属性页的问题解决方案 解决方法: 右击项目解决方案, 选择:重定 ...

  2. 题解 CF492C Vanya and Exams

    CF492C Vanya and Exams 有了Pascal题解,来一波C++题解呀qwq.. 简单的贪心题 按b[i]从小到大排序,一个一个学科写直到达到要求即可 #include<cstd ...

  3. 解密国内BAT等大厂前端技术体系-美团点评之上篇(长文建议收藏)

    引言 进入2019年,大前端技术生态似乎进入到了一个相对稳定的环境,React在2013年发布至今已经6年时间了,Vue 1.0在2015年发布,至今也有4年时间了. 整个业界在前端框架不断迭代中,也 ...

  4. java中怎么表现一对多

    链接:https://www.cnblogs.com/w-xibao/p/8183680.html 链接2:https://blog.csdn.net/C_time/article/details/8 ...

  5. PS绘制Logo

    1. 2. 3. 4. 5. 6. 第2步点击“圆1”应点击图层左边的缩览图才能获取选区 7. 8. 9. 10. 11. 12.

  6. java 面试题 高阶版

    1.hash 算法问题 hash(n) /服务器个数 hash 算法在服务器增加或者减少的时候,数据存取位置为发生变化: 什么是一致性hash算法? 一致性hash算法对2^32 取模,整个Hash空 ...

  7. echart 重新加载

    myechart2.clear(); myechart2.setOption(options[1]);

  8. Git基础及进阶-系统总结

    Git基础及进阶-系统总结 by 小强 2019-07-01 考虑到入职后不仅需要熟练掌握git的基本使用,在企业实际操作中还涉及一些进阶指令.作为一个程序员,熟练使用工具是一项基本技能,也是程序员的 ...

  9. 【笔记7-部署发布】从0开始 独立完成企业级Java电商网站开发(服务端)

    阿里云服务 购买 连接 购买域名 域名备案 域名解析 源配置步骤 资源地址 http://learning.happymmall.com/ 配置阿里云的yum源 1.备份 mv /etc/yum.re ...

  10. C语言笔记 11_头文件&强制类型转换&错误处理&递归

    头文件 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享.有两种类型的头文件:程序员编写的头文件和编译器自带的头文件. 在程序中要使用头文件,需要使用 C 预处理指 ...