如何在 Fresco 库中将 DraweeView 的尺寸设置为“wrap_content”

Iti*_*mon 3 android image fresco android-wrap-content

Fresco在我的应用程序中使用库来加载图像。问题是我无法将图像高度设置为"wrap_content"因为 库中"wrap_content"不支持Fresco。那么如何使用DraweeView?使我的图像看起来不错?我在这里查看,但找不到解决此问题的方法:frescolib/wrap_content

例如:

<com.facebook.drawee.view.SimpleDraweeView
         android:id="@+id/intro_image1"
         android:layout_width="match_parent"
         android:layout_height= // Can't use "wrap_content"
         fresco:placeholderImage="@drawable/placeholder_image" />
Run Code Online (Sandbox Code Playgroud)

顺便说一句,图像尺寸为 730*760

Ale*_*nik 5

由于您已经知道图像的确切尺寸,您可以简单地计算图像的纵横比,然后在 XML 或 Java 中设置纵横比。这是开箱即用的,您不需要任何自定义视图或其他答案中建议的 DP/像素计算。

对于您的示例,这将是 w/h = 730/760 = 0.96052631578

现在您可以设置它:在 XML 中:

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/my_image_view"
    android:layout_width="match_parent" <!-- or the desired width -->
    android:layout_height="wrap_content"
    fresco:viewAspectRatio="0.96052631578" <!-- your aspect ratio -->
    <!-- other attributes -->
Run Code Online (Sandbox Code Playgroud)

或者在 Java 中:

mSimpleDraweeView.setAspectRatio(0.96052631578f); // or whatever your aspect ratio is
Run Code Online (Sandbox Code Playgroud)

另请参阅最底部的http://frescolib.org/docs/using-drawees-xml.html