Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
stele
27 / 27 / 12
Регистрация: 29.02.2016
Сообщений: 101
1

Canvas перекрытие цвета фона

01.11.2017, 20:51. Просмотров 388. Ответов 4
Метки нет (Все метки)

По умолчанию при рисовании в Canvas происходит смешение с цветом фона, а как рисовать в режиме перекрытия цвета фона? Т.е. как рисовать аналогично дотнетовского свойства Graphics.CompositingMode = CompositingMode.SourceCopy, где это определяется в Андроиде у Canvas или у Paint?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2017, 20:51
Ответы с готовыми решениями:

Реализовать анимацию одновременного перемещения и изменения цвета фона Button
Новичок в разработке под Андроид и хочу разобраться как реализовать такую анимацию. Есть кнопка....

Canvas перекрытие рисунков
Добрый день уважаемые форумчане. Нарисовал два прямоугольника на канве, а именно на...

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

Плавное изменение цвета фона по времени в рандомные цвета
В общем, есть изображение (фон), мне необходимо, чтобы оно плавно окрашивалось в различные цвета...

Как сделать html-страничку с выбором названия цвета и в зависимости от выбранного цвета менять цвет фона?
Как сделать html-страничку с выбором названия цвета и в зависимости от выбранного цвета менять цвет...

4
Pablito
2845 / 2263 / 762
Регистрация: 12.05.2014
Сообщений: 7,931
Завершенные тесты: 1
02.11.2017, 10:28 2
код где?
простое кастомное вью в onDraw рисует по канвасу по умолчанию с полным перекрытием
0
stele
27 / 27 / 12
Регистрация: 29.02.2016
Сообщений: 101
02.11.2017, 11:47  [ТС] 3
Я по битмапу рисую с альфаканалом.
Java
1
2
3
4
5
6
7
8
9
10
        ImageView iv = (ImageView)findViewById(R.id.imageView);
        Bitmap bm = Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888);
        Canvas cv = new Canvas(bm);
        Paint p1 = new Paint();
        p1.setColor(Color.argb(255, 255, 0, 0));
        cv.drawCircle(100, 100, 90, p1);
        Paint p2 = new Paint();
        p2.setColor(Color.argb(100, 0, 255, 0));
        cv.drawCircle(150, 150, 90, p2);
        iv.setImageBitmap(bm);
На пересечении кругов получается серобуромалиновый от смешения цветов паинта и фона, а нужно врисовать зелёный с прозрачностью (заместить цвета изображения).
0
Pablito
2845 / 2263 / 762
Регистрация: 12.05.2014
Сообщений: 7,931
Завершенные тесты: 1
02.11.2017, 12:16 4
Java
1
2
3
4
        Paint p2 = new Paint();
        int color = Color.argb(100, 0, 255, 0);
        p2.setColor(color);
        p2.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.OVERLAY));
можно поиграть с режимами наложения, вместо OVERLAY выбирать что-то более подходящее
1
stele
27 / 27 / 12
Регистрация: 29.02.2016
Сообщений: 101
02.11.2017, 13:11  [ТС] 5
Pablito, да судя по картинкам в документации это похоже то что и надо. Но что-то как-то оно у меня с действительностью соотносится не очень или я не понял кто на ком рисовал. По картинкам вроде как надо SRC_OVER, а в действительности работает как надо такой код:
Java
1
2
p2.setColor(Color.argb(100, 0, 255, 0));
p2.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
0
02.11.2017, 13:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2017, 13:11

Изменение фона при сохранении рисунка из тега canvas
У меня возникла такая сложность - В моей программке для рисования на теге canvas можно рисовать...

Изменение цвета фона
Добрый день, товарищи пользователи. Подскажите, пожалуйста, что я начудил. Я каким-то неведомым...

Копирование до цвета фона
Здравствуйте, подскажите, пожалуйста как с помощью макроса в примере скопировать диапазон ячеек...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru