java在水平滚动视图中添加多个图像?
我想在水平滚动视图中放置更多图像,请假设图像为,a.jpeg,b.jpeg,c.jpeg,(d,e,f,g,h,I)。jpeg和建议我在scrollview中实现它们
我试图通过添加许多图像来制作,如下所示
这种方法是滞后的:
<HorizontalScrollView
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content">
<ImageView
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:src="@drawable/a.jpeg"/>
<ImageView
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:src="@drawable/b.jpeg"/>
<ImageView
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:src="@drawable/c.jpeg"/>
and many other images....
</HorizontalScrollView>
# 1 楼答案
您直接使用图像,而没有正确管理Android中位图占用的内存
当您使用
android:src
标记直接使用ImageView
中的图像时,如果图像太大,它肯定会延迟像Glide这样的图像加载库用于通过根据设备的
dpi
调整图像大小来加载图像简而言之:如果你把1920*1080的图像直接加载到设备上的
ImageView
中,它会加载完整的图像,即全分辨率图像,这样做会浪费大量内存,这意味着滚动时会有更多的停顿/延迟。但是,当你使用图像加载库加载这些相同的图像时,它们会调整图像的大小,这意味着,如果设备是1080p,你的图像的分辨率是4K,如果你的ImageView
填满了屏幕(假设图像完全适合设备),这个库会调整图像的大小并使其成为1080p,然后将其放入ImageView
中,节省了绘制位图所需的大量内存# 2 楼答案
我认为你需要使用
RecycleView
而不是HorizontalScrollView
来动态显示你的图像# 3 楼答案
动态添加图像