将多个图像同时放置在屏幕上的最佳方式是什么?
What's the best way to place multiple images onto the screen simultaneously?
所以我的应用程序需要在 FrameView 中同时在屏幕上显示最多 50 张图像,它们需要放置在基本图像之上。如果我将这些图像放入可绘制对象中,应用程序会在放置几张图像后崩溃并出现 OutOfMemoryError。但是当我出于某种原因将图像放入 mipmap 中而没有崩溃时,它就起作用了。所以我将它们全部放入 mipmap 文件夹中。图像也非常小,其中最大的是 2.2 KB,最小的是 398 字节。该应用程序按预期工作,但在您将一些图像放到屏幕上后性能很差。前几张图片加载速度很快,但随着您继续将图片放到屏幕上,它会逐渐变慢,以至于可能需要几秒钟才能将图片放到屏幕上。我只是使用一个 ArrayList 来放入所有 Drawable,然后使用另一个 ArrayList 来放入所有 ImageView,然后将它们加载到我的 onTouchListener 中的视图中。这是一个想法。索引用于决定插入哪张图片:
drawableOverlays.set(index, getResources().getDrawable(R.mipmap.exampleImage, null));
imageOverlays.get(index).setImageDrawable(drawableOverlays.get(index));
frame.addView(imageOverlays.get(index));
我也尝试过使用 Glide 和 Picasso,但加载速度更慢。我接近这个错误吗?有没有更有效的方法来完成这个?
最好的方法是创建一个以 ImageView 为项目的 RecyclerView,然后使用 Glide 或 Picasso 加载图像,这些库中的任何一个都会为您提供最佳性能
所以我的应用程序需要在 FrameView 中同时在屏幕上显示最多 50 张图像,它们需要放置在基本图像之上。如果我将这些图像放入可绘制对象中,应用程序会在放置几张图像后崩溃并出现 OutOfMemoryError。但是当我出于某种原因将图像放入 mipmap 中而没有崩溃时,它就起作用了。所以我将它们全部放入 mipmap 文件夹中。图像也非常小,其中最大的是 2.2 KB,最小的是 398 字节。该应用程序按预期工作,但在您将一些图像放到屏幕上后性能很差。前几张图片加载速度很快,但随着您继续将图片放到屏幕上,它会逐渐变慢,以至于可能需要几秒钟才能将图片放到屏幕上。我只是使用一个 ArrayList 来放入所有 Drawable,然后使用另一个 ArrayList 来放入所有 ImageView,然后将它们加载到我的 onTouchListener 中的视图中。这是一个想法。索引用于决定插入哪张图片:
drawableOverlays.set(index, getResources().getDrawable(R.mipmap.exampleImage, null));
imageOverlays.get(index).setImageDrawable(drawableOverlays.get(index));
frame.addView(imageOverlays.get(index));
我也尝试过使用 Glide 和 Picasso,但加载速度更慢。我接近这个错误吗?有没有更有效的方法来完成这个?
最好的方法是创建一个以 ImageView 为项目的 RecyclerView,然后使用 Glide 或 Picasso 加载图像,这些库中的任何一个都会为您提供最佳性能