使用浮点值更改ImageButton的背景色

时间:2018-09-28 10:22:24

标签: android

我知道可以使用以下方法更改背景颜色:

set terminal pngcairo

files = system("ls -1 *.csv")

do for [file in files] {
  print sprintf("processing file: '%s'", file)

  j = strstrt(file, "_");
  if (j == 0) { continue; }
  text1 = file[1:j-1] #ranges are inclusive in Gnuplot

  i = strstrt(file, "mac=");
  j = strstrt(file, ".csv");

  if (i == 0 || j == 0) { continue; }

  #i+4 since we want to start after the 'mac=' delimiter
  text4 = file[i+4:j-1]; 

  if (text1 eq "packets" && text4 eq "all") {
    set xlabel "..."
  }

  set output sprintf("out_%s.png", file);
  plot file using ...
}

是否有使用浮动值更改view.setBackgroundColor(ColorUtils.blendARGB(Color.parseColor("#ffffff"), Color.parseColor("#000000"), offset)); 的背景色调的类似方法

我正在使用一个SlidingUpLayout,它返回其位置的float值

ImageButton

我希望public void onPanelSlideChange(float offset) { setBackgroundColor(ColorUtils.blendARGB(Color.parseColor("#ffffff"), Color.parseColor("#000000"), offset) } 使用偏移值更改颜色,以便“滑动布局移动”图像按钮将相应地使用偏移值更改颜色

1 个答案:

答案 0 :(得分:0)

我有一个解决方案,因为黑白之间的所有阴影都具有相同的R,G,B值,所以我使用getColor(float offset)方法动态更改色相,我只是想会有一个更简单的解决方案,希望这对某人会有帮助...

public void onPanelSlideChange(float offset) {
    int color = getColor(offset);
    view.setColorFilter(color, android.graphics.PorterDuff.Mode.MULTIPLY);
}

public int getColor(Float value) {
    int color = android.graphics.Color.argb(255, 255, 255, 255); // WHITE
    if (value != null && value >= 0 && value <= 1) {
        if (value == 0) return color;
        else {
            int RGB = (int) ((int) 255 - (255 * value));
            return android.graphics.Color.argb(255, RGB, RGB, RGB);
        }
    }
    return color;
}