Bitmap bitmap = ((BitmapDrawable)itemUserProfileBinding.ivItemUserProfile.getDrawable()).getBitmap();
// Bitmap imageProfile = BitmapFactory.decodeResource(activity.getResources(),arrayList.get(position).getProfile());
int pixel = bitmap.getPixel(20,20);
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
int invertedRed = 255 - redValue;
int invertedGreen = 255 - greenValue;
int invertedBlue = 255 - blueValue;
itemUserProfileBinding.ivUserProfileBackArrow.setColorFilter(Color.argb(255, invertedRed, invertedGreen, invertedBlue));
在上面的代码中,itemUserProfileBinding.ivItemUserProfile
是我的背景imageView,itemUserProfileBinding.ivUserProfileBackArrow
是我的自定义工具栏后退箭头imageView。
我已经在上面尝试过了,但是没有用,请任何人可以帮助我。
预先感谢
答案 0 :(得分:0)
我不太了解您的问题,但是如果您想反转完整的位图,则获取图像中的每个像素,然后反转其RGB值。
如果itemUserProfileBinding.ivUserProfileBackArrow是您的imageview,那么我认为您应该首先从imageview获取位图,然后反转该位图的颜色,然后将反转的位图设置为您的imageview。
答案 1 :(得分:0)
您可以使用Palette类生成颜色并相应地更改颜色
//Gradle dependency
dependencies {
compile 'com.android.support:palette-v7:2x.x.x'
}
// Java
Palette.from(bitmap).generate(new PaletteAsyncListener() {
public void onGenerated(Palette p) {
// Use generated instance
// this is an Async call, You will get following colors in respect to bitmap
/*Vibrant
Vibrant Dark
Vibrant Light
Muted
Muted Dark
Muted Light*/
itemUserProfileBinding.ivUserProfileBackArrow.setColorFilter(p.getMuted(0x000000));
}
});