3

好的,我的原始问题已经改变。我如何改变这种影响的强度?

    DayToNight.setXfermode(new PorterDuffXfermode(Mode.DST_IN));

在我的梦想世界中,它会像这样工作

    DayToNight.setXfermode(new PorterDuffXfermode(Mode.DST_IN(10)));

10 是强度级别。


举个例子,如果我有一支闪烁的蜡烛,当蜡烛燃烧得很亮时,我希望我在屏幕上绘制的位图保持其origanol 颜色和亮度,当它闪烁时,我希望位图几乎变黑,并且我想要当光线变暗时使位图变暗。

我有方程式、计时器和所有的东西,只是没有如何实际应用它来改变颜色/亮度。也许燃烧图像是我正在寻找的东西?我只是想改变亮度大声笑。

我觉得使用paint.setShader 可能是一个解决方案,但是这方面的信息与我所能找到的相比非常有限。任何帮助,将不胜感激。

编辑:为了清晰起见,我正在寻找一种在将位图绘制到画布时使它们变亮/变暗的方法

4

2 回答 2

9

这两种方法可以解决您的问题:

  1. 在位图后面放置一个黑色矩形并设置位图的不透明度。

  2. 绘制位图时在 Paint 上使用 ColorFilter。要使位图变暗,请使用半透明黑色

于 2012-06-24T03:26:48.943 回答
0

嘿,我使用了一种技巧来删除黑线。在我的擦除按钮中,我将颜色设置为白色,而不是使用 XferMode .. 它可以工作并且看起来不错..

if(erase){
paintColor = Color.parseColor(newColor);
drawPaint.setColor(paintColor);
}
于 2013-09-23T20:46:37.223 回答