我想在SeekBar OnProgress更改事件中更改图像的颜色?我在imageview和下面显示一个图像,有一个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);
}
现在的问题是,当我移动搜索栏时,此方法会覆盖我的imageview。这意味着我无法看到我的imageview而不是我能看到我的图像上的不同颜色。我只是想在我的图像上应用那种颜色,而不是在图像上。
我尝试了一些不同的代码和android属性,但无法弄明白。
如果有人有想法,请帮助我......
答案 0 :(得分: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
}
另请参阅此answer。
要更改图像颜色,请参阅此answer.
答案 1 :(得分:-2)
为此,您必须先获取图像的每个像素,然后编辑其每个像素