在单个活动中使用多个GIF时出现内存错误

时间:2016-09-08 11:56:32

标签: android

endpage

public class endpage extends AppCompatActivity {
    int score=0;
    TextView t2;
    ImageView img;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_endpage);
    t2= (TextView) findViewById(R.id.textView20);
        img= (ImageView) findViewById(R.id.imageView7);
        if(this.getIntent().getExtras()!=null)
        {
            score=this.getIntent().getExtras().getInt("score");
            t2.setText(String.valueOf(score));

        }
      /*here i am trying to show different gifs according to the marks scored in quiz*/
        if(score>=75) {
            img.setBackgroundResource(R.drawable.myanimation);
            AnimationDrawable myanimation = (AnimationDrawable)img.getBackground();
            myanimation.start();
        }
        else if(score<75 && score>=50)
        {
            img.setBackgroundResource(R.drawable.myanimation1);
            AnimationDrawable myanimation1 = (AnimationDrawable)img.getBackground();
            myanimation1.start();
        }
        else
        {

                    img.setBackgroundResource(R.drawable.myanimation2);
                    AnimationDrawable myanimation2 = (AnimationDrawable)img.getBackground();
                    myanimation2.start();  
                }


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.mymenu,menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.toString().equals("Settings"))
        {
            Intent myintent=new Intent(endpage.this,mysettings.class);
            startActivity(myintent);
        }
        if(item.toString().equals("Contact Us"))
        {
            Intent myintent=new Intent(endpage.this,mycontact.class);
            startActivity(myintent);
        }
        if(item.toString().equals("About Us"))
        {
            Intent myintent=new Intent(endpage.this,aboutus.class);
            startActivity(myintent);
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onBackPressed() {
        AlertDialog.Builder mybuilder=new AlertDialog.Builder(this);
        mybuilder.setTitle("CONFIRM...?");
        mybuilder.setMessage("DO YOU WANT TO STOP THE TEST");
        mybuilder.setCancelable(false);
        mybuilder.setPositiveButton("NO", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
        mybuilder.setNegativeButton("YES", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                endpage.super.onBackPressed();
            }
        });
        AlertDialog mydialog=mybuilder.create();
        mydialog.show();
    }
}

Myanimation.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/a" android:duration="200"/>
    <item android:drawable="@drawable/b" android:duration="200"/>

</animation-list>

Myanimation1.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/c" android:duration="200"/>
    <item android:drawable="@drawable/d" android:duration="200"/>
    <item android:drawable="@drawable/e" android:duration="200"/>
    <item android:drawable="@drawable/f" android:duration="200"/>
    <item android:drawable="@drawable/g" android:duration="200"/>
    <item android:drawable="@drawable/h" android:duration="200"/>
    <item android:drawable="@drawable/i" android:duration="200"/>
    <item android:drawable="@drawable/j" android:duration="200"/>
    <item android:drawable="@drawable/k" android:duration="200"/>

</animation-list>

Myanimation2.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/l" android:duration="200"/>
    <item android:drawable="@drawable/m" android:duration="200"/>
    <item android:drawable="@drawable/n" android:duration="200"/>
    <item android:drawable="@drawable/o" android:duration="200"/>
    <item android:drawable="@drawable/p" android:duration="200"/>
    <item android:drawable="@drawable/q" android:duration="200"/>
    <item android:drawable="@drawable/r" android:duration="200"/>
    <item android:drawable="@drawable/s" android:duration="200"/>
    <item android:drawable="@drawable/t" android:duration="200"/>
    <item android:drawable="@drawable/u" android:duration="200"/>
    <item android:drawable="@drawable/v" android:duration="200"/>
    <item android:drawable="@drawable/w" android:duration="200"/>
    <item android:drawable="@drawable/x" android:duration="200"/>
    <item android:drawable="@drawable/y" android:duration="200"/>
    <item android:drawable="@drawable/z" android:duration="200"/>
    <item android:drawable="@drawable/aa" android:duration="200"/>
    <item android:drawable="@drawable/bb" android:duration="200"/>

</animation-list>

1 个答案:

答案 0 :(得分:0)

用于创建动画的图像文件太大。尝试通过减小文件大小来减小文件大小。