Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中为从网络下载的图像着色_Android_Image_Picasso - Fatal编程技术网

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

在Android中为从网络下载的图像着色,android,image,picasso,Android,Image,Picasso,我必须下载一幅图像,将图像着色,使其变暗,然后将其设置为线性布局的背景。我尝试了以下代码: Picasso.get().load(url).into(new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), bitmap

我必须下载一幅图像,将图像着色,使其变暗,然后将其设置为
线性布局的背景。我尝试了以下代码:

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) {

  }
});

问题是图像看不见,背景完全变黑。如何显示变暗的图像?

使用
PorterDuff.Mode.OVERLAY

bitmapDrawable.setColorFilter(new PorterDuffColorFilter(Color.BLACK, PorterDuff.Mode.OVERLAY));
你可以看到它是如何工作的。
希望这有帮助

我试过:
BitmapDrawable BitmapDrawable=new BitmapDrawable(getResources(),bitmap);Drawable bitmapCompat=DrawableCompat.wrap(bitmapDrawable);DrawableCompat.setTint(bitmapCompat.mutate(),Color.BLACK);nextItemLayout.setBackground(位图兼容)。我很抱歉我误读了你的问题。我已经修改了我的答案,现在它应该可以工作了:)至少在我测试它时它对我来说是这样的。只要让我知道,如果你得到你想要的结果!现在图像即将出现,但没有深色。