Android - 我在向RelativeLayout添加超过8个图像视图时遇到问题

时间:2017-07-16 11:09:14

标签: java android imageview out-of-memory

enter ?

我需要向RelativeLayout添加24个图像,我首先尝试使用XML, 我添加了第8张ImageView之后关闭了应用程序。 所以我尝试使用上面的编码,它向我展示了这条消息。 它说OutOfMemory,未能将___分配给具有6mb OOM的内存,我不知道这意味着什么,但我猜测图像文件太大了? 当我刚尝试使用XML时,它会导致错误。

enter image description here

但是整套图像都不到100kb。

我该如何处理这个问题?

2 个答案:

答案 0 :(得分:0)

看起来你在drawable文件夹中有drawables。因此,如果你有真正的大密度屏幕,它会扩展。您应该手动为所有dpi或init图像创建缩放图像:

Options options = new Options();
options.inScaled = false; 
bitmapImage = BitmapFactory.decodeResource(context.getResources(),
                                       R.drawable.imageName, options);
imageview.setImageBitmap(bitmapImage);

InputStream is = this.getResources().openRawResource(imageId);
Bitmap originalBitmap = BitmapFactory.decodeStream(is);  
imageview.setImageBitmap(originalBitmap);

答案 1 :(得分:0)

使用Picssso库(http://square.github.io/picasso/)。它有fit()方法,对于加载许多图像非常有用。例如:

Picssso.with(context).load(R.drawable.yourimage).fit().into(yourImageView);