Android - Как применить цвет градиента к растровому изображению? - PullRequest
0 голосов
/ 11 сентября 2018

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

Это мой код:

Bitmap bitmapbackground = bitmaporiginal.copy(bitmaporiginal.getConfig(), true);

Bitmap bitmaptocolor = BitmapFactory.decodeResource(activity.getResources(), R.drawable.scratch);

LinearGradient gradient = new LinearGradient(0, 0, 0, bitmaptocolor.getHeight(), Color.parseColor("#D81B60"), Color.parseColor("#F48FB1"), Shader.TileMode.CLAMP);

Paint paint = new Paint();
paint.setShader(gradient);

Canvas canvas = new Canvas(bitmapbackground);
canvas.drawBitmap(bitmaptocolor, 0, 0, paint);

Но при этом он не применяет цвет градиента к царапине (он всегда остается черным).Что я делаю не так?

1 Ответ

0 голосов
/ 12 сентября 2018

Убедитесь, что bitmaptocolor.getHeight() действительно возвращает высоту.

Используйте шестнадцатеричный эквивалент для цвета.

LinearGradient gradient = new LinearGradient(0, 0, 0, bitmaptocolor.getHeight(), 0xD81B60, 0xD81B60, Shader.TileMode.CLAMP);
...