码迷,mamicode.com
首页 > 移动开发 > 详细

MPAndroidChart柱子上的文字的颜色dataSet.setValueTextColors

时间:2020-02-25 11:18:39      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:over   惊奇   技术   color   text   size   rda   门店   16进制颜色   

版本: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。

技术图片

MPAndroidChart柱子上的文字的颜色dataSet.setValueTextColors

标签:over   惊奇   技术   color   text   size   rda   门店   16进制颜色   

原文地址:https://www.cnblogs.com/jiduoduo/p/12360575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!