将多个图像同时放在屏幕上的最佳方法是什么?

时间:2017-11-10 19:29:44

标签: android image performance android-imageview android-drawable

所以我的应用程序需要在FrameView中同时在屏幕上最多显示50个图像,它们需要放在基本图像的顶部。如果我将这些图像放入drawable中,则在使用OutOfMemoryError放置一些图像后,应用程序会崩溃。但是当我出于某种原因将图像放在mipmap中而不​​会崩溃时它会起作用。所以我将它们全部放入mipmap文件夹中。图像非常小,其中最大的是2.2 KB,最小的是398字节。该应用程序按预期工作,但在将一些图像放在屏幕上后,性能很糟糕。前几张图像会快速加载,但是当您继续将图像放到屏幕上时,它会逐渐变慢,以至于可能需要几秒钟才能将图像放到屏幕上。我只是使用ArrayList将所有Drawable放入,然后使用另一个ArrayList放置所有ImageViews,然后将它们加载到我的onTouchListener中的视图中。这是一个想法。索引用于决定要插入哪个图像:

    drawableOverlays.set(index, getResources().getDrawable(R.mipmap.exampleImage, null));           
    imageOverlays.get(index).setImageDrawable(drawableOverlays.get(index));
    frame.addView(imageOverlays.get(index));

我也尝试过使用Glide和Picasso以及加载得更慢的人。我接近这个错吗?有没有更有效的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

最好的方法是使用ImageViews创建一个RecyclerView作为项目,然后使用Glide或Picasso加载图像,任何这些库都将为您提供最佳性能