1

我想在 SeekBar OnProgress 更改事件上更改图像的颜色?我在 imageview 中显示图像,下面有一个 SeekBar 来更改图像的颜色。

我正在使用以下方式使用 seekbar 更改 Imageview 的颜色

private SeekBar.OnSeekBarChangeListener seekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress,
            boolean fromUser) {
        updateOuterColor();
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
    }
};

updateOuterColor 方法看起来像这样。

private void updateOuterColor() {
    seekR = seekBar1.getProgress();
    seekG = seekBar2.getProgress();
    seekB = seekBar3.getProgress();
    innerLips.setColorFilter(0xff000000 + seekR * 0x10000 + seekG * 0x100
            + seekB);
    eyeInnerOne.setColorFilter(0xff000000 + seekR * 0x10000 + seekG * 0x100
            + seekB);
    eyeInnerTwo.setColorFilter(0xff000000 + seekR * 0x10000 + seekG * 0x100
            + seekB);
}

现在的问题是当我移动我的搜索栏时,这个方法会覆盖我的图像视图。这意味着我无法看到我的图像视图,而不是我只能看到图像上的不同颜色。我只想在我的图像上应用那种颜色,而不是在图像上。

我尝试了一些不同的代码和 android 属性,但无法弄清楚。

如果有人有想法,请帮助我...

4

2 回答 2

1

像这样更新你的 onProgressChanged 方法

public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {

                if(progress >= 25 && progress < 50)
                  // set color on image here
                else if(progress >= 50 && progress < 75)
                  // set color on image here
                else if(progress >= 75 && progress <= 100)
                  // set color on image here
                else 
                  // set color on image here
            }

另请参阅此答案

要更改图像颜色,请参阅此答案。

于 2013-10-22T10:27:21.767 回答
-2

为此,您必须首先获取图像的每个像素,然后编辑其每个像素

于 2020-08-30T21:54:21.247 回答