gpt4 book ai didi

android - 从android SeekBar中的LinearGradient获取准确的颜色代码

转载 作者:行者123 更新时间:2023-11-29 00:11:06 24 4
gpt4 key购买 nike

我在我的项目中有一个要求,即创建填充不同深浅颜色的 SeekBar。为此,我通过分配开始和结束颜色值来使用 LinearGradient,它也很有魅力。但是我不知道当位置发生变化时如何从搜索栏中获取准确的颜色代码。

我还发布了一些代码供您引用:

public class SeekbarActivity extends Activity {

private SeekBar volumeControl = null;
private View view;
private ShapeDrawable shape;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_seekbar);

volumeControl = (SeekBar) findViewById(R.id.volume_bar);

view = (View) findViewById(R.id.seek_view);

LinearGradient test = new LinearGradient(0.f, 0.f, 300.f, 0.0f,
Color.BLACK, Color.RED, TileMode.CLAMP);

shape = new ShapeDrawable(new RectShape());
shape.getPaint().setShader(test);

volumeControl.setProgressDrawable((Drawable) shape);

volumeControl.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {

}

public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}

public void onStopTrackingTouch(SeekBar seekBar) {

}
});

}

}

输出图片

enter image description here

最佳答案

您要做的是首先确定您的结束颜色(十六进制代码)。在您的示例中,这是红色的,所以我假设它是#FF0000。现在黑色 (#000000) 和红色 (#FF0000) 之间的差异 = #FF,十进制值为 255。

您可以将搜索栏的值处理为 0 到 255 之间的值。如果您将所选值转换为十六进制并将前两个字符替换为红色十六进制,那么您将得到更深的红色阴影。

一个例子:

您的搜索栏值为 216。

216的十六进制值为D8

由于红色由十六进制颜色代码中的前两个字符表示,因此十六进制代码 #D80000 表示您想要的红色阴影。

关于android - 从android SeekBar中的LinearGradient获取准确的颜色代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30052553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com