彩虹颜色选择器安卓版

3
我想创建一个彩虹色选择器,其中包含屏幕截图中显示的所有颜色。我搜索了很多,但没有找到任何有用的东西。我得到了一个演示,可以给选择器提供颜色代码的数组。但是由于有很多不同的色调,我认为这不是最好的方法。enter image description here

试试这个:https://github.com/Madrapps/Pikolo。它以弧形的方式提供了你所需要的内容。你可以参考代码并根据自己的需求进行修改。 - Henry
1个回答

3
请使用以下代码:
import android.annotation.SuppressLint;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.SeekBar;
import  android.support.v4.graphics.ColorUtils;


public class MainActivity extends AppCompatActivity {

ImageView im;
float[] hsl = {0f,.65f,0.5f};//Position 0 = hue , 1 saturation, 2= lightness
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    SeekBar sb = findViewById(R.id.seekBar);
    //design your custom seek bar to make look like that
    im = findViewById(R.id.imageView);
    sb.setMax(360);



    sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            hsl[0] = progress;
            int color = ColorUtils.HSLToColor(hsl);
            im.setBackgroundColor(color);


        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });



}
}

但是如何给不同的颜色呢? - madhuri H R
问题并不十分清楚。如果你想要改变SeekBar的外观,可以使用自定义SeekBar并更改背景和滑块。请参考这个链接或者这个链接 - Sayok Majumder
颜色可以从seekbarchange监听器下的行int color = ColorUtils.HSLToColor(hsl);中获取。 - Sayok Majumder
好的,我明白了。但是ColorUtils.HSLToColor(hsl)没有给出正确的值。对于进度为0,它应该是红色的阴影,对吧?但我没有得到红色。而且颜色值长度为7,是负数。请参考附加的图片。 - madhuri H R
你需要微调HSL数组中的值。如果您需要更深的红色,则需要更改饱和度。也就是说,您必须调整hsl的值。请参见此链接以了解有关HSL颜色的更多信息 ,并查看此页面 以了解有关Android部分的信息。我无法理解您所说的颜色值长度。 - Sayok Majumder
好的,我现在明白了。谢谢,这帮了我很多。我已经做了一些更改。 - madhuri H R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接