2 qq 33230445 qq_33230445 于 2016.05.06 16:11 提问

请教一下Adroid自定义组件画图的一点问题

图片说明
如图所示,有上下两个坐标系,上面坐标系的折线一直在变化,每当折线变化一次,下面坐标系就相应的往下画出一条横线,横线上每个点的颜色都因上边坐标系对应点的值的不同而不同,下边坐标系的图形就随上边坐标系折线的变化一直往下铺,请问如何让下边横线各点的颜色随上边坐标系该点的值的变化而变化

3个回答

u010386612
u010386612   2016.05.06 16:47
已采纳

你折线的数值是int类型的话倒是很好解决…… 如果是double类型的话,那么需要的颜色太多了。

第一种方式:可以先定义好各个值所对应的颜色。(适合折线波动范围小,并且int类型)

第二种方式:当折线变化的时候,随机一个颜色,然后将折线的值和颜色对应关系保存到map。下一次折线变化的时候,先遍历map,
看是否有相同的值,能否直接取到颜色,否则再随机一个颜色。(适合折线波动范围小,并且int类型)

第三种方式:定义一个算法根据折线的值生成唯一颜色。(推荐,但是算法我不太懂)

qq_33230445
qq_33230445 对了,还有折线值越大颜色越深。。应该要用算法,但是颜色深浅怎么设我就没办法了,RGB色码表对应的颜色深浅感觉也没有规律。。值得范围挺大,也不好直接设对应颜色
一年多之前 回复
qq_33230445
qq_33230445 如图所示,有上下两个坐标系,上面坐标系的折线一直在变化,每当折线变化一次,下面坐标系就相应的往下画出一条横线,横线上每个点的颜色都因上边坐标系对应点的值的不同而不同,下边坐标系的图形就随上边坐标系折线的变化一直往下铺,请问如何让下边横线各点的颜色随上边坐标系该点的值的变化而变化
一年多之前 回复
qq_33230445
qq_33230445   2016.05.06 17:01

对了,还有折线值越大颜色越深。。应该要用算法,但是颜色深浅怎么设我就没办法了,RGB色码表对应的颜色深浅感觉也没有规律。。值得范围挺大,也不好直接设对应颜色。

u010386612
u010386612   2016.05.06 19:49

所以 难点就在这里=。=
我可以给你个意见,你这折线肯定有个取值范围的,比如-100 ~+100 那你就弄两百个颜色……
如果是1.5612312这个值,那么当作是1处理就行了。 反正1.0和1.2,就算用算法换算成颜色,肉眼也是无法分辨深浅的。毕竟相差太小了

甚至上,-100~+100之前 你可以只弄100个颜色……懂我意思么=。=

qq_33230445
qq_33230445 懂,就是用最笨的方法。。实在没办法也就只有这样了
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!