改变的减轻强度/变暗上在Android油漆类使用PorterDuffXfermode位图(chang

2019-07-30 02:45发布

好吧我的一部开拓创新的问题发生了变化。 我如何改变这样的事情是如何实现的强度?

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

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

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

10是强度的水平。


一个例子是,如果我有一个闪烁的蜡烛,当蜡烛燃烧亮我想我在屏幕上绘图,以保留其origanol色彩和亮度,当它闪烁我想要的位图几乎昏了过去的位图,我想变暗位图作为光变暗。

我有公式,定时器和所有想通了,只是没有如何实际应用它来改变颜色/亮度。 也许燃烧的图像正在寻找什么即时通讯呢? 我只是想改变亮度笑。

我觉得用paint.setShader可能是一个解决方案,但在这方面的信息是什么,我已经能够找到相当有限。 任何帮助,将不胜感激。

编辑:是晶莹剔透的,我正在寻找一种方式,以减轻/变暗的位图,因为我吸引他们到画布

Answer 1:

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

  1. 把一个黑色矩形位图的背后,并设置位图的不透明度。

  2. 使用您的油漆ColorFilter当你画的位图。 要加深你的位图使用半透明的黑色



Answer 2:

嘿,我已经使用了一个把戏,以消除黑line.In我的删除按钮,我已经将颜色设置为白色,而是采用XferMode ..它的工作原理和看起来不错..

if(erase){
paintColor = Color.parseColor(newColor);
drawPaint.setColor(paintColor);
}


文章来源: changing the intensity of lighten/darken on bitmaps using PorterDuffXfermode in the Android Paint class