2011-03-23 51 views
1

所以我使用Bitmap.createScaledBitmap来缩放和显示在我从我的android应用程序本地保存的imageview文件中。看起来它是完美的工作,但现在看来,由于某种原因,只有某些文件可以缩放,其他文件可能会崩溃。当我尝试使用更大的文件或可能的解决方案时,它会破坏代码并导致应用程序崩溃。有没有这样或那样的方法来避免它?或甚至更好的方式来扩展文件?任何建议都会很棒,如果您需要澄清,请告诉我。使用Bitmap.createScaledBitmap并不总是工作

回答

2

每当您寻求帮助时,您都应该发布伴随崩溃的堆栈跟踪。但这听起来像是你的内存不足了。请确保在加载另一个图像之前调用当前图像上的Bitmap.recycle()。

+0

我明白,如果它在第一张打开的图像上崩溃,意味着什么? – Peter 2011-03-23 19:03:20

+0

你的第一张图片太大了。您可以使用不同的分辨率对其进行解码(因此不必加载原始文件,然后使用BitmapFactory.Options的inSampleSize字段在其上调用createScaledBitmap())。将其设置为2为一半的比例,三为第三比例等。针对您的特定情况和问题试用选项类。 – LeffelMania 2011-03-23 21:22:45

+0

所以如果质量不是一个巨大的问题,我应该加载所有的原始图像说1/3比例,然后与他们一起工作,所以我不必担心用户选择一个图像太大? – Peter 2011-03-23 21:25:44