изменение интенсивности освещения / затемнения на растровых изображениях с помощью PorterDuffXfermode в классе Android Paint

Хорошо, мой оригинальный вопрос изменился. Как мне изменить интенсивность того, как это происходит?

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

в мире моей мечты это сработало бы так

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

10 - это уровень интенсивности.

Например, если бы у меня была мерцающая свеча, когда свеча горит ярко, я хочу, чтобы растровые изображения, которые я рисую на экране, сохраняла их цвет и яркость оригинала, когда она мерцает, я хочу, чтобы растровые изображения были почти затемнены, и я хочу, чтобы затемнять растровые изображения, когда свет тускнеет.

У меня есть уравнения, таймеры и все, что выяснилось, только не то, как на самом деле применить его, чтобы изменить цвет / яркость. Может быть, запись изображений - это то, что я ищу? Я просто хочу изменить легкость LOL.

Я чувствую, что использование paint.setShader может быть решением, но информация в этой области довольно ограничена по сравнению с тем, что я смог найти. Любая помощь будет оценена.

редактировать: чтобы быть кристально чистым, я ищу способ осветлить / затемнить растровые изображения, как я рисую их на холсте

 MetaSnarf11 дек. 2015 г., 05:18
как вы регулируете интенсивность темноты
 WIllJBD24 июн. 2012 г., 04:59
возможно что-то здесь Paint.setXfermode (новый PorterDuffXfermode (Mode.LIGHTEN)); даже если так, как бы я изменил значение освещения / затемнения
 WIllJBD24 июн. 2012 г., 05:05
Удивительно, как я искал часы и ничего не придумал, и теперь я начинаю разбираться в этом ... Слава Богу, хорошим людям, которые публикуют примеры того, что делает то, чтоvollnixx.wordpress.com/2012/06/06/…

Ответы на вопрос(2)

Решение Вопроса

Эти два подхода могут решить вашу проблему:

Put a dark rectangle behind your bitmap and set the Bitmap's opacity.

Use ColorFilter on your Paint when you draw the bitmap. To darken your bitmap use a semi-transparent black color

 11 дек. 2015 г., 04:17
@ Сохам, как настроить каналы темноты?
 WIllJBD24 июн. 2012 г., 05:51
Не могли бы вы дать мне строку кода о том, как я это сделаю?
 21 авг. 2014 г., 23:13
если ваше растровое изображение имеет несколько прозрачных областей, использование простого прямоугольника не сработает, потому что вы увидите его под ним. вместо этого вы можете использовать оба подхода и сначала нарисовать растровое изображение с помощью LightingColorFilter (0xFF000000, 0x00000000), а затем, обычно, то же растровое изображение
 13 дек. 2014 г., 18:44
Метод, упомянутый WIllJBD, великолепен, отлично работает, вы даже можете настроить уровни темноты.
 WIllJBD24 июн. 2012 г., 06:26
краска = новая краска (); Фильтр ColorFilter = новый LightingColorFilter (0xFF222222, 0x00000000); paint.setColorFilter (фильтр);

Эй, я использовал своего рода хитрость, чтобы удалить черную линию. В моей кнопке стирания я установил белый цвет вместо использования XferMode. Он работает и выглядит хорошо.

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

Ваш ответ на вопрос