我试图展示一个简单的颜色选择器,以便用户可以选择几个文本的颜色......但是我迄今发现的每个颜色选择器似乎都过于复杂。如果至少我有一些想法,我不介意自己编码。Android:简单的颜色选择器
任何人都可以提供一些简单的颜色选择器的代码? 或者指点我进一步研究如何编码的方向?
我想实现这样的事情:
http://i.imgur.com/gIYWpiJ.jpg
我试图展示一个简单的颜色选择器,以便用户可以选择几个文本的颜色......但是我迄今发现的每个颜色选择器似乎都过于复杂。如果至少我有一些想法,我不介意自己编码。Android:简单的颜色选择器
任何人都可以提供一些简单的颜色选择器的代码? 或者指点我进一步研究如何编码的方向?
我想实现这样的事情:
http://i.imgur.com/gIYWpiJ.jpg
试试这个:
在XML中使用:
<SeekBar
android:id="@+id/seekbar_font"
android:layout_width="300dip"
android:layout_height="wrap_content"
android:layout_margin="10px"
android:max="100"
android:progress="50"></SeekBar>
在活动:
LinearGradient test = new LinearGradient(0.f, 0.f, 300.f, 0.0f,
new int[] { 0xFF000000, 0xFF0000FF, 0xFF00FF00, 0xFF00FFFF,
0xFFFF0000, 0xFFFF00FF, 0xFFFFFF00, 0xFFFFFFFF},
null, TileMode.CLAMP);
ShapeDrawable shape = new ShapeDrawable(new RectShape());
shape.getPaint().setShader(test);
SeekBar seekBarFont = (SeekBar)findViewById(R.id.seekbar_font);
seekBarFont.setProgressDrawable((Drawable)shape);
Thx,除了颜色仅适用于一半条,我认为它必须与LinearGradient构造函数有关,所以我会寻找文档并尝试修复它。 –
@ArtemioRamirez你必须调整酒吧的大小来匹配渐变宽度,反之亦然 - 注意两个地方的300 - seekbar和渐变 – Wildroid
是的,我已经做了,thx。 –
在别人运行到这个位置的情况下,是用于检索值的代码:
seekBarFont.setMax(256*7-1);
seekBarFont.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(fromUser){
int r = 0;
int g = 0;
int b = 0;
if(progress < 256){
b = progress;
} else if(progress < 256*2) {
g = progress%256;
b = 256 - progress%256;
} else if(progress < 256*3) {
g = 255;
b = progress%256;
} else if(progress < 256*4) {
r = progress%256;
g = 256 - progress%256;
b = 256 - progress%256;
} else if(progress < 256*5) {
r = 255;
g = 0;
b = progress%256;
} else if(progress < 256*6) {
r = 255;
g = progress%256;
b = 256 - progress%256;
} else if(progress < 256*7) {
r = 255;
g = 255;
b = progress%256;
}
seekBarFont.setBackgroundColor(Color.argb(255, r, g, b));
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
已经回答了 - 看帖子[链接](http://stackoverflow.com/questions/4342757/how-to-make -a-color-gradient-in-a-seekbar) – Wildroid
那会很棒,但它不会编译,LinearGradient的构造函数方法失败 –
Checkout this [link](http://stackoverflow.com/questions/6980906/android-color-picker) – Mantas