首页 新闻 会员 周边

在Android中如何将SeekBar分成三段,并且每段显示的颜色不同

0
悬赏园豆:100 [已解决问题] 解决于 2014-10-23 11:55

最近做项目的时候遇到了一个难题,就是:将SeekBar分成三段(均等或不均等都可以),根据滑动的progress,每段显示不同的颜色。比如说SeekBar的最大值是100,progress为0-10的时候第一段显示红色;当progress为10-80的时候第一段还是显示红色,第二段显示绿色;当progress为80-100的时候第一段显示红色,第二段显示绿色,第三段显示黄色。
各位走过路过的大神帮帮忙啊,给个思路撒!!!多多谢啦!!!

zhuyanan的主页 zhuyanan | 初学一级 | 园豆:71
提问于:2014-10-16 13:55
< >
分享
最佳答案
1

Android组件的样式也是可以通过代码来控制的,说起来这个seekbar实际上也只是个被侦听了的图形组合吧?

收获园豆:100
焰£天琊 | 菜鸟二级 |园豆:418 | 2014-10-16 14:25

是的,一般的实现方法就是在xml文件中定义layer-list,但是这样只能将整个SeekBar定义为一个颜色,我这个需要在代码中动态定义。

zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:28

@zhuyanan: 用代码拼一张图出来,丢进去当背景图怎么样?

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-10-16 14:31

@焰£天琊: 可以试试,但用代码动态拼图的话恐怕是会出现内存溢出。

zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:32

@zhuyanan: 那你总共有几个颜色?每一个做一个图,用代码控制宽度呢?

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-10-16 14:34

我貌似懂你的意思了,你容我试试先!

zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:39

@焰£天琊: 你提供的思路太好了,解决了我的燃眉之急啊!!!我在layer-list中的progress那个item中引用了一个分成几段的图片,确实可以实现我想要的效果,不过就要辛苦美工了!!!谢谢啦!之前老想着要重写View,没想到这种简便的方法!!!

zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:50

@焰£天琊: 还有,我咋把园豆给你?

zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:51

@zhuyanan: 忽忽,恭喜你啦,话说我也不知道怎么给豆子。。。估计时间到了就自动发?

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-10-16 14:52

@焰£天琊: 好吧,我再查查咋给吧,最近有点忙,查到了一定给!!!

zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:54

@zhuyanan: 这都是小事情,帮到你就很愉快了,工作重要嘞

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-10-16 14:56

@焰£天琊: 理解万岁撒!!!

zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:56
其他回答(1)
0

多重叠几个div就可以了哇。4个div,一个容器div(背景白色),然后内部有三个放在一行的div,控制各自的宽度和背景色,就能实现三个颜色了。更多颜色同样的道理也能实现!

幻天芒 | 园豆:37175 (高人七级) | 2014-10-16 14:10

麻烦问一下div是什么?

支持(0) 反对(0) zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:12

@zhuyanan: 我去~原来你指的是Android中控件... 我还以为你只是想实现那种效果呢!

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-10-16 14:18

@幻天芒: 看来我得再注明一下!不过还是谢谢啦!

支持(0) 反对(0) zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:20

@zhuyanan: 对Android开发不熟,不过我想你可以自定义组合控件来实现。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-10-16 14:20

@幻天芒: 我看过一个帖子,说是得自定义一个View,然后就没有了,但是我现在毫无头绪啊,所以希望大神们给我个思路撒!

支持(0) 反对(0) zhuyanan | 园豆:71 (初学一级) | 2014-10-16 14:22

@zhuyanan: 你就按照我说的那种div的思路去走也是可以的呀。比如先定义一个白色背景的容器,然后在其中放几个带颜色的控件,控制各自的宽度就能组合出大概的效果了。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-10-16 14:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册