gpt4 book ai didi

android - 我的 Activity 如何在 Android 中使用大量高质量图像顺利运行?

转载 作者:行者123 更新时间:2023-12-04 01:22:39 26 4
gpt4 key购买 nike

场景:我的 Android 应用程序中有两个 Activity : Activity X 和 Activity Y

在 Activity X 上,有一个按钮,单击按钮后,我将打开 Activity Y。

在 Activity Y 的 OnCreate 中,我正在调用 Firestore 数据库,并获取大约 10 个图像链接。该图像链接是动态的,并且该链接是 Firebase 存储链接,实际的高质量图像已上传到该链接。

获取该图像链接后,我使用 Glide 库在 ImageView 上进行设置。

问题:显然,为了显示 10 个大图像,我在 Activity Y XML 中添加了 Scrollview,以便用户可以滚动和查看图像。但是滚动行为并不流畅。这也不仅仅是第一次出现问题。将所有图像加载到 Imageview 后,如果我尝试滚动,则滚动也不流畅。

代码:

String str = entry.getValue().toString();

switch (entry.getKey()) {
case "link1":
setImage(binding.image1, str);
break;

case "link2":
setImage(binding.image2, str);
break;

case "link3":
setImage(binding.image3, str);
break;

case "link4":
setImage(binding.image4, str);
break;

case "link5":
setImage(binding.image5, str);
break;
}
}


private void setImage(ImageView image1, String str) {
image1.setVisibility(View.VISIBLE);
Glide.with(context).load(str).
diskCacheStrategy(DiskCacheStrategy.ALL)
.into(image1);
}

更新:

尝试使用 Recycyclerview 而不是 Scrollview,但回收器是否有可能更流畅。我尝试使用以下代码。

RecyclerView.SmoothScroller smoothScroller = new LinearSmoothScroller(context) {
@Override
protected int getVerticalSnapPreference() {
return LinearSmoothScroller.SNAP_TO_ANY;
}
};
smoothScroller.setTargetPosition(0);
mLayoutManager.startSmoothScroll(smoothScroller);

XML:

<androidx.recyclerview.widget.RecyclerView xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/app_bar"
android:clipToPadding="false"
android:fadingEdge="none"
android:fastScrollEnabled="true"
android:focusable="true"
android:overScrollMode="never"
tools:listitem="@layout/row_preview_view" />

此外,是否有任何缓存机制或其他可能的机制?我正在使用 Glide 库加载图像。我可以用 Glide 做些什么吗?

最佳答案

也许尝试用 Recycler View 替换 Scroll View。在 android 文档中,我们可以阅读“如果您的应用需要显示基于大型数据集(或频繁更改的数据)的滚动元素列表,您应该使用 RecyclerView” Docs .我不确定,但我认为使用 Recycler View 会更流畅。

关于android - 我的 Activity 如何在 Android 中使用大量高质量图像顺利运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62395298/

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