位图大小超出了某些设备中的 VM 预算
bitmap size exceeds VM budget in some devices
我正在做 android 应用程序,在 3Gb Ram 的设备上运行良好,但在 512 mbRam 的设备上运行不佳。我收到错误 "bitmap size exceeds VM budget" 我不知道如何解决。这是我的布局代码,它使用了很多可绘制对象。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#333"
android:gravity="bottom"
android:orientation="vertical" >
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:id="@+id/container_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondo_menu"
android:orientation="vertical" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/transparent_negro"
android:scrollbars="none" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/image_episodio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/athle" />
<TextView
android:id="@+id/episodio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Los orígenes"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/image_episodio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pentl" />
<TextView
android:id="@+id/episodio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Primera"
android:textColor="#FFFFFF" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal" >
<ImageView
android:id="@+id/image_episodio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/delant" />
<TextView
android:id="@+id/episodio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Segund"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal">
<ImageView
android:id="@+id/image_episodio4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cambios_mini" />
<TextView
android:id="@+id/episodio4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="É"
android:textColor="#FFFFFF" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal" >
<ImageView
android:id="@+id/image_episodio5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/niev" />
<TextView
android:id="@+id/episodio5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Debut"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal" >
<ImageView
android:id="@+id/image_episodio6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/aldeanos" />
<TextView
android:id="@+id/episodio6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="La"
android:textColor="#FFFFFF" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal" >
<ImageView
android:id="@+id/image_episodio7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ir" />
<TextView
android:id="@+id/episodio7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ss"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal">
<ImageView
android:id="@+id/image_episodio8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/fin" />
<TextView
android:id="@+id/episodio8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="kk"
android:textColor="#FFFFFF"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/image_episodio9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gaba" />
<TextView
android:id="@+id/episodio9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="em"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/image_episodio10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bie" />
<TextView
android:id="@+id/episodio10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="yy"
android:textColor="#FFFFFF"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
<LinearLayout
android:id="@+id/container_iribar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/historiacuatro" />
</LinearLayout>
<LinearLayout
android:id="@+id/container_zarra"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/historiatres" />
</LinearLayout>
<LinearLayout
android:id="@+id/container_pichichi"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:gravity="right|center_vertical"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/historiados" />
</LinearLayout>
<LinearLayout
android:id="@+id/container_histo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:gravity="bottom|left"
android:orientation="vertical" >
<ImageView
android:id="@+id/icono_comentario"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/historiauno" />
</LinearLayout>
<LinearLayout
android:id="@+id/menu_capa"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerVertical="true"
android:background="@drawable/fondohis"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:visibility="gone" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/transparent_negro"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/titulo_portada"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/circle"
android:text="Gure"
android:textColor="#FFFFFF"
android:textSize="50sp" />
<TextView
android:id="@+id/titulo_anos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textColor="#ffffff"
android:textSize="40sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
我已经使用了我在其他问题中读到的这个,但我无法解决它:
@Override
protected void onDestroy() {
super.onDestroy();
unbindDrawables(findViewById(R.id.RootView));
System.gc();
}
private void unbindDrawables(View view) {
if (view.getBackground() != null) {
view.getBackground().setCallback(null);
}
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
unbindDrawables(((ViewGroup) view).getChildAt(i));
}
((ViewGroup) view).removeAllViews();
}
}
RAM 与 VM 预算无关。您必须减小位图大小。当然添加这一行:
android:largeHeap="true"
在您的清单中的应用程序标签中可能会有所帮助,但不能解决问题。
有关更多信息,我可以给你这个 link,它完全解释了这个问题,我不能再添加任何内容了:
Strange out of memory issue while loading an image to a Bitmap object
你必须这样做:
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap preview_bitmap=BitmapFactory.decodeStream(is,null,options);
另请参阅此 link:
希望对您有所帮助 ;)
在 ImageView 上显示位图时,您可以压缩位图。
image.buildDrawingCache();
Bitmap img = image.getDrawingCache();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
img.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] food = stream.toByteArray();
//显示
位图位图 = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
1. 用于处理 Bitmap
个对象:
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
options.inDither = false;
options.inPurgeable = true;
options.inInputShareable = true;
Bitmap bitmap = BitmapFactory.decodeStream(is, null, options);
此外,您需要使用
bitmap.recycle();
在使 Bitmap
实例为空之前。这将有助于节省内存。
2. 用于处理 res/drawable
:
中的图像
- 将
android:largeHeap=“true”
属性添加到 application
标签
在项目的清单文件中。
- 使用图形编辑器调整图像大小并缩小它们的尺寸。
注意: 其中一个答案说“此错误只会在 logcat
中可见,它不会影响您的应用程序。 " 所以是的,这完全是错误的。 OutOfMemoryError
是 Java Error
,甚至比 RuntimeException
更有害。它将使应用程序崩溃。
增加堆大小。
在 AndroidManifest.xml
中,将 android:largeHeap=“true”
属性添加到 Application
标签。
我正在做 android 应用程序,在 3Gb Ram 的设备上运行良好,但在 512 mbRam 的设备上运行不佳。我收到错误 "bitmap size exceeds VM budget" 我不知道如何解决。这是我的布局代码,它使用了很多可绘制对象。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#333"
android:gravity="bottom"
android:orientation="vertical" >
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:id="@+id/container_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondo_menu"
android:orientation="vertical" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/transparent_negro"
android:scrollbars="none" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/image_episodio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/athle" />
<TextView
android:id="@+id/episodio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Los orígenes"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/image_episodio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pentl" />
<TextView
android:id="@+id/episodio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Primera"
android:textColor="#FFFFFF" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal" >
<ImageView
android:id="@+id/image_episodio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/delant" />
<TextView
android:id="@+id/episodio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Segund"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal">
<ImageView
android:id="@+id/image_episodio4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cambios_mini" />
<TextView
android:id="@+id/episodio4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="É"
android:textColor="#FFFFFF" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal" >
<ImageView
android:id="@+id/image_episodio5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/niev" />
<TextView
android:id="@+id/episodio5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Debut"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal" >
<ImageView
android:id="@+id/image_episodio6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/aldeanos" />
<TextView
android:id="@+id/episodio6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="La"
android:textColor="#FFFFFF" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal" >
<ImageView
android:id="@+id/image_episodio7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ir" />
<TextView
android:id="@+id/episodio7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ss"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal">
<ImageView
android:id="@+id/image_episodio8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/fin" />
<TextView
android:id="@+id/episodio8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="kk"
android:textColor="#FFFFFF"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/image_episodio9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gaba" />
<TextView
android:id="@+id/episodio9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="em"
android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/image_episodio10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bie" />
<TextView
android:id="@+id/episodio10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="yy"
android:textColor="#FFFFFF"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
<LinearLayout
android:id="@+id/container_iribar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/historiacuatro" />
</LinearLayout>
<LinearLayout
android:id="@+id/container_zarra"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/historiatres" />
</LinearLayout>
<LinearLayout
android:id="@+id/container_pichichi"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:gravity="right|center_vertical"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/historiados" />
</LinearLayout>
<LinearLayout
android:id="@+id/container_histo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondohis"
android:gravity="bottom|left"
android:orientation="vertical" >
<ImageView
android:id="@+id/icono_comentario"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/historiauno" />
</LinearLayout>
<LinearLayout
android:id="@+id/menu_capa"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerVertical="true"
android:background="@drawable/fondohis"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:visibility="gone" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/transparent_negro"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/titulo_portada"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/circle"
android:text="Gure"
android:textColor="#FFFFFF"
android:textSize="50sp" />
<TextView
android:id="@+id/titulo_anos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textColor="#ffffff"
android:textSize="40sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
我已经使用了我在其他问题中读到的这个,但我无法解决它:
@Override
protected void onDestroy() {
super.onDestroy();
unbindDrawables(findViewById(R.id.RootView));
System.gc();
}
private void unbindDrawables(View view) {
if (view.getBackground() != null) {
view.getBackground().setCallback(null);
}
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
unbindDrawables(((ViewGroup) view).getChildAt(i));
}
((ViewGroup) view).removeAllViews();
}
}
RAM 与 VM 预算无关。您必须减小位图大小。当然添加这一行:
android:largeHeap="true"
在您的清单中的应用程序标签中可能会有所帮助,但不能解决问题。
有关更多信息,我可以给你这个 link,它完全解释了这个问题,我不能再添加任何内容了: Strange out of memory issue while loading an image to a Bitmap object
你必须这样做:
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap preview_bitmap=BitmapFactory.decodeStream(is,null,options);
另请参阅此 link:
希望对您有所帮助 ;)
在 ImageView 上显示位图时,您可以压缩位图。
image.buildDrawingCache();
Bitmap img = image.getDrawingCache();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
img.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] food = stream.toByteArray();
//显示 位图位图 = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
1. 用于处理 Bitmap
个对象:
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
options.inDither = false;
options.inPurgeable = true;
options.inInputShareable = true;
Bitmap bitmap = BitmapFactory.decodeStream(is, null, options);
此外,您需要使用
bitmap.recycle();
在使 Bitmap
实例为空之前。这将有助于节省内存。
2. 用于处理 res/drawable
:
- 将
android:largeHeap=“true”
属性添加到application
标签 在项目的清单文件中。 - 使用图形编辑器调整图像大小并缩小它们的尺寸。
注意: 其中一个答案说“此错误只会在 logcat
中可见,它不会影响您的应用程序。 " 所以是的,这完全是错误的。 OutOfMemoryError
是 Java Error
,甚至比 RuntimeException
更有害。它将使应用程序崩溃。
增加堆大小。
在 AndroidManifest.xml
中,将 android:largeHeap=“true”
属性添加到 Application
标签。