在 Android Paint 类中使用 PorterDuffXfermode 更改位图上的变亮/变暗强度



好的,我的原始问题已经改变。如何更改此类事件影响的强度?

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

在我的梦境中,它会像这样工作

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

10是强度水平。


例如,如果我有一个闪烁的蜡烛,

当蜡烛燃烧得很亮时,我希望我正在绘制到屏幕上的位图保留其牛至颜色和亮度,当它闪烁时,我希望位图几乎被涂黑,并且我想在光线变暗时使位图变暗。

我有方程式,计时器和所有想通的东西,只是不知道如何实际应用它来改变颜色/亮度。也许刻录图像是我想要的?我只想改变亮度,哈哈。

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

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

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

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

  2. 绘制位图时,在"画图"上使用"颜色滤镜"。若要使位图变暗,请使用半透明的黑色

嘿,

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

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

相关内容

  • 没有找到相关文章

最新更新