gpt4 book ai didi

android - 如何使用 Fresco 和 Android 以编程方式创建 SimpleDraweeView

转载 作者:行者123 更新时间:2023-11-29 23:17:41 25 4
gpt4 key购买 nike

我正在尝试从服务器获取 10 张图像并以编程方式创建 fresco draweeViews 并将它们放入可 ScrollView 中。

到目前为止我尝试了什么

 private LinearLayout linearLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linearLayout = findViewById(R.id.linearLayout);
Fresco.initialize(this);
getImages("1");

}
public void getImages(String size) {

for (int i = 1; i <= 10; i++) {

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(0, 0, 0, 0);
SimpleDraweeView image = new SimpleDraweeView(this);
image.setLayoutParams(lp);
// Adds the view to the layout
linearLayout.addView(image);

Uri uri = Uri.parse("https://desolate-beach-17272.herokuapp.com/downloadFile/" + size + "mb" + i + ".jpg");
image.setImageURI(uri);
}
}

此方法适用于 picasso 和 glide,但我无法使其适用于 fresco。有人可以帮我吗?

顺便说一下,服务器已启动并正在运行,因此您可以根据需要对其进行测试

最佳答案

如文档所述:

SimpleDraweeView 不支持 layout_width 或 layout_height 属性的 wrap_content。

所以我修改了 linearLayout 参数并为 View 设置了最小宽度。现在它就像一个魅力

 public void getImages(String size) {

for (int i = 1; i <= 10; i++) {

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
SimpleDraweeView draweeView = new SimpleDraweeView(this);
draweeView.setLayoutParams(lp);
draweeView.setMinimumWidth(150);
draweeView.setMinimumHeight(1500);
// Adds the view to the layout
linearLayout.addView(draweeView);

Uri uri = Uri.parse("https://desolate-beach-17272.herokuapp.com/downloadFile/" + size + "mb" + i + ".jpg");

draweeView.setImageURI(uri);


}
}

关于android - 如何使用 Fresco 和 Android 以编程方式创建 SimpleDraweeView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55039645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com