在Android中为网络黑暗下载的图像着色

时间:2018-05-24 09:37:16

标签: android image picasso

我必须下载图像,为图像着色以使其变暗,然后将其设置为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) {

  }
});

问题是图像没有被看到,背景变得完全变黑。如何显示黑暗图像?

1 个答案:

答案 0 :(得分:0)

使用PorterDuff.Mode.OVERLAY

bitmapDrawable.setColorFilter(new PorterDuffColorFilter(Color.BLACK, PorterDuff.Mode.OVERLAY));

您可以阅读它的工作原理here。 希望这有帮助!