我必须下载图像,为图像着色以使其变暗,然后将其设置为LinearLayout
的背景。我尝试了以下代码:
Picasso.get().load(url).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), bitmap);
bitmapDrawable.setColorFilter(new PorterDuffColorFilter(Color.BLACK, PorterDuff.Mode.SRC_IN));
linearLayout.setBackground(bitmapDrawable);
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
问题是图像没有被看到,背景变得完全变黑。如何显示黑暗图像?
答案 0 :(得分:0)
使用PorterDuff.Mode.OVERLAY
:
bitmapDrawable.setColorFilter(new PorterDuffColorFilter(Color.BLACK, PorterDuff.Mode.OVERLAY));
您可以阅读它的工作原理here。 希望这有帮助!