java - 在水平 ScrollView 中添加许多图像?

标签 java android android-studio android-recyclerview horizontalscrollview

我想在水平 ScrollView 中放置更多图像,请假设图像为 a.jpeg、b.jpeg、c.jpeg、(d,e,f,g,h,i).jpeg 并建议我在 ScrollView 中实现它们?

我尝试通过添加许多图像来制作,如下所示。

这个方法是滞后的:

 <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:src="@drawable/a.jpeg"/>

<ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:src="@drawable/b.jpeg"/>

<ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:src="@drawable/c.jpeg"/>

and many other images....

    </HorizontalScrollView>

最佳答案

您直接使用图像,而没有正确管理位图在 Android 中占用的内存。

当您通过 android:src 标签直接在 ImageView 中使用图像时,如果图像太大,必然会出现延迟。

图像加载库,如 Glide用于通过根据设备的 dpi 调整图像大小来加载图像。

简而言之:如果您直接在设备上的 ImageView 中加载 1920*1080 的图像,它将加载完整的图像,即全分辨率图像,浪费大量内存做同样的事情,意味着滚动时更多的卡顿/滞后。但是,当您使用图像加载库加载这些相同的图像时,它们会调整图像的大小,这意味着,如果设备是 1080p,则您的图像是 4K 分辨率,并且如果您的 ImageView 填满屏幕(假设图像完全适合设备),该库将调整图像大小并将图像设为 1080p,然后将其放入 ImageView 中,从而节省绘制位图所需的大量内存。

关于java - 在水平 ScrollView 中添加许多图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56722478/

相关文章:

java - Sensor.TYPE_ORIENTATION 已弃用

java - 不以//开头如何接受单行 Java 注释?

java - 不论语言环境如何,我如何强制使用4位数字的年份?

java - 使用 JPA 关系查询时非法尝试取消引用集合

android - 查找 View 是否已布局

android - 无法解析设计 :27. 1.1 的依赖性

Java字符比较错误

android - 单击关闭按钮后如何关闭通知对话框,而不调用任何 Activity

Android:应用程序关闭时保存 ListView 数据

Android Studio编译旧图标