Android OutOfMemory:如何释放ImageView的内存

Android OutOfMemory:如何释放ImageView的内存,android,imageview,out-of-memory,Android,Imageview,Out Of Memory,我得到了一个很好的OutOfMemory异常,我想知道如何释放ImageView的内存。 我不喜欢位图循环(),因为我想再次使用这些图像 我的程序如下面的代码所示。 我的@drawable文件夹中有很多图像,我想在单个ImageView中对它们进行洗牌。我使用了两个倒计时程序,在几秒钟后重复setImageResource()。只需要几张图片就可以了,但是如果我增加图片的数量,我会得到一个例外 那么ImageView有没有办法释放当前未使用图片的内存。 是的,我已经知道这一页了,所以请不要告诉我

我得到了一个很好的OutOfMemory异常,我想知道如何释放ImageView的内存。 我不喜欢位图循环(),因为我想再次使用这些图像

我的程序如下面的代码所示。 我的@drawable文件夹中有很多图像,我想在单个ImageView中对它们进行洗牌。我使用了两个倒计时程序,在几秒钟后重复setImageResource()。只需要几张图片就可以了,但是如果我增加图片的数量,我会得到一个例外

那么ImageView有没有办法释放当前未使用图片的内存。

是的,我已经知道这一页了,所以请不要告诉我。

谢谢你的帮助:)

。 .


尝试使用insteadu(@hrskrs)平均处理程序而不是计时器,对吗?但是这将如何解决OutOfMemory异常呢?如果你的图像太大,你必须缩小它们并显示出来。否则,如果图像没有那么大并且给您一个
OutOfMemory
异常,这就是
Timer
的问题。如果你的图像不太大,可以尝试使用
处理程序
,否则请参考此@hrskrs,我的图像不太大,每个大约60kb,我认为很小。因此,我可能会尝试与处理程序,谢谢提示:)!如果是这样的话,就像我说的,用
处理程序试试。
如果有效或者答案对你有帮助,你可以投票给他们。这就是你在
SO中感谢的方式
private int rotateIndex;
final int NUM_OF_IMAGES = 23;

private int imageArray[] = new int[NUM_OF_IMAGES];

imageArray[0] = R.drawable.tv;
    imageArray[1] = R.drawable.background;
    imageArray[2] = R.drawable.background1;
    imageArray[3] = R.drawable.backgroundplain;
    imageArray[4] = R.drawable.myimage;
    imageArray[5] = R.drawable.myimage1;
countDown1 = new CountDownTimer(2000, 1000) {
        @Override
        public void onTick(long millisUntilFinished){

            System.out.println("timer running");
        }

        @Override
        public void onFinish() 
    {       
            countDown2.start();
        }
    };




countDown2 = new CountDownTimer(200, 100) {
        @Override
        public void onTick(long millisUntilFinished) {

        }

        @Override
        public void onFinish() {

    rotateIndex =randomNumberBetween0andNUM_OF_IMAGES; // happens with a randomize method, nothing more
            rotateImage.setImageResource(imageArray[rotateIndex]);

           countDown1.start();

        }
    };

    countDown1.start();