Android 如何在运行动画时保持活动流畅

Android 如何在运行动画时保持活动流畅,android,animation,out-of-memory,Android,Animation,Out Of Memory,我有一个应用程序,它将图像显示为帧动画,每个帧动画都在其各自的活动中,但是这些动画会导致我的应用程序出现内存不足错误,尽管我的动画本身可以正常工作。我还调用了从创建方法上的每个活动开始的方法,我知道这是不赞成的,但在发出内存不足错误之前,应用程序将经历5或6个动画活动,我发现在它崩溃后,如果我点击之前导致它崩溃的任何按钮,它将奇迹般地工作。我猜这是因为它放弃了资源,只是不确定实现这一点的最佳方式是否有人能提供任何见解?下面是上一个活动和调用时关闭的活动的代码 最后一个activity.Java

我有一个应用程序,它将图像显示为帧动画,每个帧动画都在其各自的活动中,但是这些动画会导致我的应用程序出现内存不足错误,尽管我的动画本身可以正常工作。我还调用了从创建方法上的每个活动开始的方法,我知道这是不赞成的,但在发出内存不足错误之前,应用程序将经历5或6个动画活动,我发现在它崩溃后,如果我点击之前导致它崩溃的任何按钮,它将奇迹般地工作。我猜这是因为它放弃了资源,只是不确定实现这一点的最佳方式是否有人能提供任何见解?下面是上一个活动和调用时关闭的活动的代码

最后一个activity.Java

包com.martinsapp.socialstories

import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;

public class TeethActivityBed extends Activity {
AnimationDrawable teethBrushing;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bed_teeth);
    ImageView teeth_brushing_bed = (ImageView) findViewById(R.id.teethImageView);
    teeth_brushing_bed.setBackgroundResource(R.drawable.teeth_brushing_bed);
    teethBrushing = (AnimationDrawable) teeth_brushing_bed.getBackground();
    teethBrushing.stop();
    teethBrushing.start();

}



@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.teeth_activity_bed, menu);
    return true;
}
public void nextAct(View view){
    Intent intent = new Intent(this, SleepingActivity.class);
    startActivity(intent);
}

}
last activity.xml

<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".TeethActivity"
android:background="@android:color/transparent">



<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:contentDescription="@string/teeth_bed_image"
    android:id="@+id/teethImageView"
    android:scaleType="centerCrop"
    android:layout_alignParentBottom="true"
    android:background="@drawable/teeth_brushing_bed" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/teeth_bed_text"
    android:textSize="23sp"
    android:textStyle="bold|italic"
    android:id="@+id/textView"
    android:gravity="center"
    android:background="@android:color/transparent" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/next"
    android:id="@+id/button"
    android:textSize="20sp"
    android:textStyle="bold|italic"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:background="@android:color/transparent"
    android:layout_alignParentEnd="false"
    android:layout_alignParentStart="false"
    android:gravity="bottom"
    android:onClick="nextAct"/>

</RelativeLayout>
关闭.xml的活动

<RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

<ImageView

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/imageView"
    android:background="@drawable/goodnight"
    android:contentDescription="@string/wake_image"
    android:scaleType="centerCrop" />



<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/textView"
    android:text="@string/sleepText"
    android:textSize="23sp"
    android:textStyle="bold|italic"
    android:background="@android:color/transparent"
    android:gravity="center" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/finished"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:onClick="nextImage2"
    android:id="@+id/nextbutton"/>
</RelativeLayout>

@维格拜尔,你编辑的重点是什么?我知道如果这是新年的事情,我猜现在已经过去了,但是为什么要取消感谢呢?很高兴你这么问。欢迎来到堆栈溢出。你能分享一些代码吗?并确保您使用的图像大小合适,而不是使用大尺寸图像。@Vigbyor非常感谢您的澄清,我阅读了所有信息,现在明白了,再次感谢,因为我说动画是自己制作的,这让我觉得图像大小还可以。如果不是这样的话,请纠正我,确保我可以添加代码,但它将用于4或5个活动。
<RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

<ImageView

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/imageView"
    android:background="@drawable/goodnight"
    android:contentDescription="@string/wake_image"
    android:scaleType="centerCrop" />



<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/textView"
    android:text="@string/sleepText"
    android:textSize="23sp"
    android:textStyle="bold|italic"
    android:background="@android:color/transparent"
    android:gravity="center" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/finished"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:onClick="nextImage2"
    android:id="@+id/nextbutton"/>
</RelativeLayout>