Растровое изображение с цветным слоем

У меня есть ImageView, куда я помещаю растровое изображение (слева), иногда я хочу увидеть растровое изображение с полупрозрачным синим слоем (справа). Я пытаюсь использовать ColorFilter (LightingColorFilter и PorterDuffColorFilter), но получаю темно-синий цвет. Как мне сделать это с помощью ColorFilter или чего-то еще?

введите здесь описание изображения

Спасибо.

РЕДАКТИРОВАТЬ (я пробовал этот и другие варианты)

 //ColorFilter filter = new PorterDuffColorFilter(color.wather, PorterDuff.Mode.DST_OVER);
 ColorFilter filter = new LightingColorFilter(color.mul, color.wather);
 // mul = 0xFFFFFFFF and wather = 0x7000FFFF

 BitmapScaler scaler = new BitmapScaler();
 imagen.setImageBitmap(scaler.getScaled());
 imagen.setColorFilter(filter);

Я пробовал разные мультипликаторы, добавлял значения и всегда получал это: введите здесь описание изображения


person k0nig    schedule 16.04.2013    source источник
comment
можешь выложить что ты пробовал?   -  person Elior    schedule 17.04.2013
comment
хорошо, это что-то с вашими значениями mul и wather. см. это stackoverflow.com/questions/7048941/   -  person Elior    schedule 17.04.2013
comment
Я уже вижу это, я использую 0xFFFFFFFF для mul, чтобы выбрать все, как в примере, но для добавления я хочу полупрозрачный синий, я использую 0x7000FFFF, но я получаю не правильное изображение, а темно-синий и несколько прозрачных.   -  person k0nig    schedule 17.04.2013
comment
попробуйте 0x700000FF только для прозрачного синего, посмотрите, что для альфы FF полностью непрозрачен, а 00 полностью прозрачен, поэтому вы даже можете проверить 0x090000FF для добавления значения   -  person Elior    schedule 17.04.2013
comment
Я пробую это и другое, я всегда получаю темно-синее шоу сверху.   -  person k0nig    schedule 17.04.2013
comment
Может быть, я не могу получить это с помощью LightingColorFilter? Описание Eclipse: Создайте цветовой фильтр, который умножает каналы RGB на один цвет, а затем добавляет второй цвет, закрепляя результат для каждого компонента на [0..255]. ¡¡¡ Альфа-компоненты аргументов mul и add игнорируются. !!!   -  person k0nig    schedule 17.04.2013


Ответы (1)


Я уже нашел mul, добавил значения, у меня была проблема с color.xml, потому что я использовал номер ID вместо номера цвета RGB, большая ошибка. Прозрачность (альфа) игнорируется, но я могу получить эффект снижения интенсивности добавленной стоимости.

    int mul = 0xFFFFFF;
    int add = 0x005050;
filter = new LightingColorFilter(mul, add);

Спасибо Элиор за помощь.

person k0nig    schedule 16.04.2013