当前位置: 首页 > 知识库问答 >
问题:

使用wrap_content的Facebook壁画

邓禄
2023-03-14

我得到了一堆我想用fresco加载的抽屉,我想用wrap_contentsize来处理这些图像,我怎么用xml用fresco来做呢?或者,如果xml是不可能的,您如何在代码中实现它?

<com.facebook.drawee.view.SimpleDraweeView
          android:id="@+id/myImage"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          fresco:placeholderImage="@mipmap/myImage"/>

上面的代码不起作用,除非我设置了固定的大小。

共有1个答案

太叔凌龙
2023-03-14

我是壁画团队的一员,我是做出不支持包装内容的设计决定的人。文件中解释了理由。但简而言之,问题是您不能保证图像将立即可用(您可能需要首先获取它),这意味着一旦图像到达,视图大小将不得不更改。这在大多数情况下是不可取的,您可能应该重新考虑您的UI。

不管怎样,如果你真的真的需要/想这么做,你可以这样做:

void updateViewSize(@Nullable ImageInfo imageInfo) {
  if (imageInfo != null) {
    draweeView.getLayoutParams().width = imageInfo.getWidth();
    draweeView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
    draweeView.setAspectRatio((float) imageInfo.getWidth() / imageInfo.getHeight());
  }
}

ControllerListener listener = new BaseControllerListener {
    @Override
    public void onIntermediateImageSet(String id, @Nullable ImageInfo imageInfo) {
      updateViewSize(imageInfo);
    }

    @Override
    public void onFinalImageSet(String id, @Nullable ImageInfo imageInfo, @Nullable Animatable animatable) {
      updateViewSize(imageInfo);
    }
  };

DraweeController controller = draweeControllerBuilder
  .setUri(uri)
  .setControllerListener(listener)
  .build();
draweeView.setController(controller);

这段代码是我从头开始写的,我还没有真正测试过它。但思路应该清晰,只要稍加调整就能奏效。

 类似资料:
  • 我见过的变通方法,但没有。有什么想法吗?

  • 问题内容: Facebook API和Facebook Connect的新功能。 在Google Code上找到了Facebook Java API开源库… 我真的很高兴有一个用Java预先编写的API! 对编写服务器端Java层感兴趣,该层使用REST能够访问用户的Facebook朋友列表,他们的墙,在网络上向他们发送消息等。 下载二进制文件,不幸的是,我解压缩时没有找到任何示例或演示代码。 问

  • 我正在开发一个画廊屏幕,允许用户从设备中选择一些图像并发送给另一个用户。我正在使用加载图像,但是根据设备的不同,图像加载非常慢,屏幕上的滚动也很慢。 谁知道怎么解决这个问题? 谢谢!

  • 所以我目前正在尝试做一个几乎像迷宫一样的游戏。问题是墙壁碰撞,一旦角色撞到墙上,我就不能再把他弄出来了,不管碰撞后我试图带他去哪个方向,他都会被“卡住”。我想的一个解决方案是,每当角色撞到墙上时,“支持他”,这样就不会再检测到碰撞。然而,当我这样做的时候,他以一种奇怪的方式穿墙。这是我的代码,所以你们可以知道我在做什么: 这段代码的很大一部分实际上是从另一个问同样问题的人那里得到的。即使按照另一个

  • 本文向大家介绍使用nodejs下载风景壁纸,包括了使用nodejs下载风景壁纸的使用技巧和注意事项,需要的朋友参考一下 需要用到的第三方模块有: superagent superagent-charset  (手动指定编码,解决GBK中文乱码) cheerio express async (并发控制) 完整的代码,可以在我的github中可以下载。主要的逻辑逻辑在 netbian.js 中。 以彼

  • 我想问题是我标记的地方。它在这里: 但我不知道为什么。我的理论是:球向上移动,击中了顶墙,踢进,使=真,那么和相应地改变(如果击中了顶墙,应该保持不变,而应该乘以-1)。然后它会向下移动,因此从顶墙上“弹”出来。 注意:目前我只工作的顶部墙壁。其他三个等我能想出怎么先从顶墙上弹开的时候再做。 你能帮我看看有什么问题吗?而如果这种操作需要使用vector2类,你能给我解释一下,或者给我一个学习的地方