您好我得到以下错误,当我尝试启动我的小部件时,它是一个笔记记录应用程序,这是我得到的错误,请使用我的代码提供一个可行的答案,很乐意接受有效的答案,谢谢提前: -
05-16 02:53:42.491: E/AndroidRuntime(5335): java.lang.OutOfMemoryError
并且错误指向我的代码中的这一行: -
File imgFile = new File(data.get(position).get("path"));
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
imageView.setImageBitmap(myBitmap);
答案 0 :(得分:1)
你可以使用Picasso为你处理这一切,我认为这是强烈推荐的。它就像包含库一样简单,并称之为:
Picasso.with(context).load(myBitmap).into(imageView);
或者,您可以尝试此link中列出的方法。
具体来说,就是这个。
public static Bitmap decodeSampledBitmapFromResource(Resources res, String resId, int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(resId, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
options.inPreferredConfig = Config.RGB_565; <---- the options and the one below are important
options.inDither = true;
return BitmapFactory.decodeFile(resId, options);
}
答案 1 :(得分:0)
这可能会帮助那些人,几个小时之后没有回答这个问题。我找到了一种处理outOfMemoryError的方法。我在我的清单文件中添加了这行代码。
android:largeHeap="true"
我将此添加到整个应用程序中,如下所示: -
<application
android:icon="@drawable/ic_launcher"
android:largeHeap="true"
android:label="@string/app_name" >
android:largeHeap是增加分配内存到app的工具。