我有一个应用程序,我正在设置近50个类android:largeHeap="true",如下所示.这是一个好习惯吗?
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="Mall"
android:largeHeap="true"
android:logo="@drawable/logo_for_up"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" >
</application>
Run Code Online (Sandbox Code Playgroud)
请建议使用它的优点和缺点.
我得到记忆问题,这就是我问这个问题的原因.
我正在开发一个Android应用程序.该应用程序有一个包含大量图像的视图.我有一个错误,我会尝试提供尽可能多的信息,希望有人可以给我一些建议.
该应用程序在所有本地测试中都运行良好.但是,我收到了很多来自用户的崩溃:java.lang.OutOfMemoryError: bitmap size exceeds VM budget
这是堆栈跟踪
0 java.lang.OutOfMemoryError: bitmap size exceeds VM budget
1 at android.graphics.Bitmap.nativeCreate(Native Method)
2 at android.graphics.Bitmap.createBitmap(Bitmap.java:507)
3 at android.graphics.Bitmap.createBitmap(Bitmap.java:474)
4 at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:379)
5 at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:498)
6 at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:473)
7 at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336)
8 at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:359)
9 at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:385)
Run Code Online (Sandbox Code Playgroud)
我最大的问题是,即使在旧设备上,我也无法在本地重现问题.
我已经实现了很多东西来尝试解决这个问题:
onDestroy()方法中的所有必要步骤inSampleSize.用于计算正确inSampleSize的代码
public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight)
{
// Raw height and width of image
final int height = options.outHeight;
final …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个显示来自摄像头的图像的基本应用程序,但是当我尝试从sdcard加载.jpg时BitmapFactory.decodeFile,它返回null.
它没有给出一个我觉得奇怪的内存不足错误,但完全相同的代码在较小的图像上工作正常.
通用图库如何以极少的内存显示来自相机的巨大图片?