-1

我有九张要在活动开始时加载的图片,并且遇到了 OutOfMemory 异常的问题。起初我直接将它们加载到 xml 设置它的 src。所以在获得 java.lang.OutOfMemory 之后,我意识到也许我需要更有效地加载图片,我创建了这个循环以在活动开始时执行:

 for(int i=0;i<9;i++){
        String background = "background"+(i+1);
        int idDrawable = getResources().getIdentifier(background, "drawable", getPackageName());
        int idPicture = getResources().getIdentifier(background, "id", getPackageName());

        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeResource(getResources(), idDrawable, options);

        options.inJustDecodeBounds = false;
        ImageView image = (ImageView) findViewById(idPicture);
        image.setImageBitmap(BitmapFactory.decodeResource(getResources(), idDrawable, options));
}

但是我仍然有同样的 OutOfMemory 问题,关于我做错了什么有什么想法吗?

4

2 回答 2

2

使用以下代码。更改此代码

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), idDrawable, options);

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
options.inSampleSize = 4;
BitmapFactory.decodeResource(getResources(), idDrawable, options);

并删除此行

options.inJustDecodeBounds = false;
于 2013-10-21T11:55:34.407 回答
0

自己进行一点谷歌搜索和搜索将引导您进入 Android Developers HowTo

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

于 2013-10-21T11:54:43.500 回答