как использовать LightingColorFilter, чтобы сделать изображение темным на свету - PullRequest
12 голосов
/ 13 августа 2011

Я хочу добавить свет изображения, я хочу использовать LightingColorFilter

LightingColorFilter lcf = new LightingColorFilter( mul, add); 
imageView.setColorFilter(lcf);

но я не знаю, как настроить mul, add, можете ли вы дать ссылку, код или параметры для настройки освещения изображения?

Спасибо

Ответы [ 2 ]

26 голосов
/ 13 августа 2011

Целочисленные значения - это цвета (здесь вы можете посмотреть поближе http://developer.android.com/reference/android/graphics/Color.html)
Используются 4 байта, один для альфы, один для красного, один для зеленого, один для синего диапазона - каждый от 0 до 255 (гекс от 0 до FF)

так что цвет в шестнадцатеричном виде выглядит как

0 x 00     00   00    00
    alpha  red  green blue

Если вы хотите установить, например, красный на ноль, используйте

mul: 0xFF00FFFF
add: 0x00000000

Если вы хотите включить синий, используйте

mul: 0xFFFFFFFF
add: 0x000000FF 
1 голос
/ 01 октября 2018
Canvas canvas= new Canvas(my_bitmap); // create canvas from bitmap
Paint my_paint = new Paint(); // create Paint from bitmap

my_paint.setColorFilter(new LightingColorFilter(0x77777777, 0x77777777));//(mul, add)

canvas.drawBitmap(my_bitmap, 0, 0, my_paint );

1 - теперь вы можете показать my_bitmap

2 - теперь my_bitmap имеет примерно на 50% больше света

3 - вы можете изменить (mul, add), чтобы понять, как работает

4 - также можно использовать my_paint в другом графическом методе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...