我有一个包含ImageView的活动。 图像在OnCreate方法中设置,它工作正常。 但是当我开始一个新的活动(同一类型)时,在我的一些朋友的电话上,应用程序崩溃了(不是在模拟器中,或在我的手机中)。
我认为错误是outOfMemoryError。
但是我的图像是大约100ko的png,怎么可能呢? 如果不调整图像大小,我该怎么办才能解决问题?
我重新创建了一个非常简单的例子:
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace TestBug
{
[Activity (Label = "TestBug", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Main);
ImageView image = FindViewById<ImageView> (Resource.Id.img);
if (Utils.nb == 0) {
image.SetImageResource (Resource.Drawable.img1);
}
else if (Utils.nb == 1) {
image.SetImageResource (Resource.Drawable.img2);
}
else if (Utils.nb == 2) {
image.SetImageResource (Resource.Drawable.img3);
}
Button button = FindViewById<Button> (Resource.Id.myButton);
Utils.nb = Utils.nb + 1;
button.Click += ButtonClick;
}
protected override void OnDestroy ()
{
base.OnDestroy ();
FindViewById<ImageView> (Resource.Id.img).SetImageBitmap(null);
}
public void ButtonClick(object sender, EventArgs e)
{
var intent = new Intent (this, typeof(MainActivity));
StartActivity (intent);
Finish ();
}
}
}
main.axml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/myButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:id="@+id/img" />
</LinearLayout>
Utils.cs
using System;
namespace TestBug
{
public static class Utils
{
public static int nb = 0;
}
}