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