Как я могу сделать ImageView, который не рисует прозрачные части изображения? - PullRequest
0 голосов
/ 20 апреля 2019

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

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

Так есть ли какие-то ColorFilter, которыене отфильтровывает только один определенный цвет, но вместо этого каждый пиксель, который прозрачен в какой-либо степени?

Также было бы весьма удобно, если бы был способ сделать это без доступа к фактическому растровому изображению, как единственные строкикод, который я использую для представления до сих пор, это

setImageResource(item.getResourceID());

и некоторые анимации, поэтому у меня нет связанного Bitmap объекта.

1 Ответ

1 голос
/ 20 апреля 2019

Я достиг желаемого эффекта, используя ColorMatrixColorFilter с этой матрицей:

{1f,0f,0f,0f,0f,
0f,1f,0f,0f,0f,
0f,0f,1f,0f,0f,
0f,0f,0f,256f,-256*254};
...