Android 尝试从其他应用获取可绘制资源时内存不足
从我的应用程序中,我试图从其他已安装的应用程序中获取特定的可绘制资源。资源总是存在的。我使用:Android 尝试从其他应用获取可绘制资源时内存不足,android,out-of-memory,drawable,android-resources,Android,Out Of Memory,Drawable,Android Resources,从我的应用程序中,我试图从其他已安装的应用程序中获取特定的可绘制资源。资源总是存在的。我使用: Resources resources = activity.getPackageManager().getResourcesForApplication(packageName); int previewResID = resources.getIdentifier("image", "drawable", packageName); Drawable myThemePreview = resour
Resources resources = activity.getPackageManager().getResourcesForApplication(packageName);
int previewResID = resources.getIdentifier("image", "drawable", packageName);
Drawable myThemePreview = resources.getDrawable(previewResID);
在drawable转换为位图之前,我在最后一行得到内存不足的信息,并向用户显示可以与BitmapFactory一起使用的。使用指定的选项可减少内存
它看起来像这样:
Resources resources = activity.getPackageManager().getResourcesForApplication(packageName);
int previewResID = resources.getIdentifier("image", "drawable", packageName);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeResource(resources,previewResId,options);
你能多发一点你的代码吗?这么少的代码行很难判断出问题出在哪里。您也可以使用options.inJustDecodeBounds=true让BitmapFactory检索目标位图的宽度和高度,并使用它们计算inSampleSize。