当放置三个以上的ImageButton时,我的SecondActivity崩溃

时间:2017-08-03 22:56:27

标签: java android android-layout

当我在我的活动中放置三张图片时,它会崩溃。无法找到答案  这个问题。

第一项活动

public class SquareMain extends AppCompatActivity {//MainActivity

    private boolean isUserClickedBackButton = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {//OnCreate
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_square_main);
        mainmusic();
    }//OnCreate

    public void presshere(View view)//pressherebutton
    {
            Intent press = new Intent(SquareMain.this, SquareHome.class);
            startActivity(press);
    }//pressherebutton

    public void mainmusic(){//mainmusic
        MediaPlayer mainmusic = MediaPlayer.create(SquareMain.this, R.raw.mainmeunsong);//main music
        mainmusic.start();//main music
        mainmusic.setLooping(true);//main music
    }

}//MainActivity

第二项活动

public class SquareHome extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_square_home);
    }
}

图片按钮

<ImageButton
    android:id="@+id/pressherebutton"
    android:layout_width="161dp"
    android:layout_height="28dp"
    android:layout_marginBottom="8dp"
    android:layout_marginTop="8dp"
    android:background="@mipmap/squarepresshere"
    android:onClick="presshere"
    android:scaleType="centerCrop"
    android:text="@string/presshere"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.86"
    app:srcCompat="@drawable/squarepresshere"
    tools:layout_editor_absoluteY="223dp" />

当放置三个以上图像按钮时,我的SecondActivity崩溃。 任何人可能对如何解决这个问题有任何想法?

2 个答案:

答案 0 :(得分:1)

那些图像的大小是多少?图像的大小也是我们为了平滑和舒适地渲染图像而必须考虑的因素。高分辨率图像可能会导致ANR。

答案 1 :(得分:0)

在离开MediaPlayer,覆盖Activity方法并停止onPause之前,您需要终止MediaPlayer。将您的mainmusic声明为类变量而非本地。

@Override
protected void onPause() {
    super.onPause();
    if (mainmusic != null) {
        if (mainmusic.isPlaying())
            mainmusic.stop();
        mainmusic.reset();
        mainmusic.release();
    }
}