MPAndroidChart柱子上的文字的颜色dataSet.setValueTextColors
版本: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的更多相关文章
- iOS 设置导航栏的颜色和导航栏上文字的颜色
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...
- navigation和tabbar上的文字.图片 自定义
[[UITabBarItem appearance] setTitleTextAttributes:@{ UITextAttributeTextColor : [UIColor blackColor] ...
- iOS 设置导航栏之二(设置导航栏的颜色、文字的颜色、左边按钮的文字及颜色)
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicati ...
- CSS实现Div透明,而显示在上面的文字不透明,但也可看到显示在下面的图片内容
CSS实现Div透明,而显示在上面的文字不透明,但也可看到显示在下面的图片内容,DiV透明其实挺简单,主要是为background定义opacity属性,一般这个是最大值是1,数值越接近1,则越不透明 ...
- C#图像处理(1):在图片上加文字和改变文字的方向
C#在图片上加文字,代码如下: /// <summary> /// 图片上方加文字,文字将会被180度反转 /// </summary> /// <param name= ...
- 怎么在PDF上进行文字修改
文件相信大家不论是工作中还是在学习生活中都会有遇到,有时候我们会遇到PDF文件中的文字有时候会有错误的时候,这个时候就需要对修改PDF文件上的文字,那么具体要怎么做呢,PDF文件需要借助软件才可以编辑 ...
- C#实现图片叠加,图片上嵌入文字,文字生成图片的方法
/// <summary> /// 图片叠加 /// </summary> /// <param name="sender"& ...
- Mac Mini2018 开箱(视频)全球首映!Kindle 开箱一并奉上(文字)
2018.12.9更新 为了方便大家收看我的这个开箱视频,我把视频放在知乎上了,可以参考如下连接即可观看啦: https://zhuanlan.zhihu.com/p/51677467 ------- ...
- 函数putText()在图片上写文字
#include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...
随机推荐
- css常见问题汇总
1. 如果我想显示两行文字第二行超出部分‘...’? 限制在一个块元素显示的文本的行数. -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit proper ...
- 【转】Vue.js 2.0 快速上手精华梳理
Vue.js 2.0 快速上手精华梳理 Sandy 发掘代码技巧:公众号:daimajiqiao 自从Vue2.0发布后,Vue就成了前端领域的热门话题,github也突破了三万的star,那么对于新 ...
- 安卓开发:打印Log
在iOS开发中使用NSLog进行打印调试,在安卓中使用的是Log.v(tag, msg);等进行打印调试. 参考:[https://blog.csdn.net/salary/article/detai ...
- Vue基础笔记3
插槽指令 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...
- [蓝桥杯][基础训练]2n皇后问题
Description 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行 ...
- java作业 11.10
package text3; import java.io.File; import java.io.IOException; import java.nio.file.Files; public c ...
- RTT学习之启动流程
总结RT-Thread的启动流程. 非运行时与运行时的image文件分别是什么样的,请画下来.是谁将 RW 段中的 RW-data(初始化的全局变量)搬运到 RAM 中? MDK环境下各种数据段存储 ...
- mui下拉刷新 ios click事件无法响应问题
使用mui的事件监听事件 tap mui("#pullrefresh").on('tap', '.ulDiv', function (event) {this.click();}) ...
- R语言 plot()函数
语法: plot(x, y, ...) x,y分别是两个向量,x为横轴坐标,y为纵轴坐标 其他参数: type= "p" for points, 散点图 默认 "l&qu ...
- 使用电脑热点和Fiddler对Android app进行抓包
如果没有路由器,怎么对app抓包?如果你的电脑可以开热点的话也可以. 打开Fiddler,菜单栏选择Tools->Options->Connections,勾选Allow remote c ...