Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在我的应用程序中滚动真的很不顺畅_Android_Imageview_Scrollview_Lag - Fatal编程技术网

Android 在我的应用程序中滚动真的很不顺畅

Android 在我的应用程序中滚动真的很不顺畅,android,imageview,scrollview,lag,Android,Imageview,Scrollview,Lag,我制作了一个安卓应用程序,在点击按钮时播放声音。这些声音也可以通过messenger共享。所有这些按钮(它们的外观和位置)都在activity_main.xml中指定。问题是,当我在我的应用程序中向上或向下滚动时,它看起来很糟糕,因为它不平滑,而且我的应用程序看起来很滞后 下面是我的代码,其中包括一些按钮和图像视图 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.a

我制作了一个安卓应用程序,在点击按钮时播放声音。这些声音也可以通过messenger共享。所有这些按钮(它们的外观和位置)都在activity_main.xml中指定。问题是,当我在我的应用程序中向上或向下滚动时,它看起来很糟糕,因为它不平滑,而且我的应用程序看起来很滞后

下面是我的代码,其中包括一些按钮和图像视图

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/r1">

    <Button
        android:text="@string/sound1"
        android:layout_marginTop="33dp"
        android:id="@+id/sound1"
        android:layout_width="210dp"
        android:background="@drawable/backgroundbuttons"
        android:layout_height="50dp"
        android:layout_alignRight="@+id/sound3"
        android:layout_alignEnd="@+id/sound3"
        android:textSize="13sp" />

    <Button
        android:text="@string/sound2"
        android:layout_width="210dp"
        android:layout_height="50dp"
        android:layout_marginTop="8dp"
        android:id="@+id/sound2"
        android:background="@drawable/backgroundbuttons"
        android:layout_below="@+id/sound1"
        android:layout_alignLeft="@+id/sound1"
        android:layout_alignStart="@+id/sound1"
        android:textSize="13sp" />

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        app:srcCompat="@drawable/sharebutton"
        android:id="@+id/share_button1"
        android:layout_alignBottom="@+id/sound1"
        android:layout_toRightOf="@+id/sound1"
        android:layout_toEndOf="@+id/sound1" />

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        app:srcCompat="@drawable/sharebutton"
        android:id="@+id/share_button2"
        android:layout_alignBottom="@+id/sound2"
        android:layout_toRightOf="@+id/sound2"
        android:layout_toEndOf="@+id/sound2" />

以上是一个概述,可用于包括您的情况在内的广泛领域

对于您的代码,您可以实现以下功能:

 @Override
    public void onResume() {
        mp.onResume();
        // Setup the player
        mp.resume();
    }
@Override
    public void onDestroy() {
        if(mp != null) {
            mp.release();
        }
        super.onDestroy();
    }
 s1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(mp != null)

                {
                    mp.stop();
                    mp.release();
                }
                finish();
            }
        });
}
如果有帮助,请使用日志帮助您查看生命周期

try{
    if(mp !=null && mp.isPlaying()){
       Log.d("TAG------->", "player is running");
       mp.stop();
       Log.d("Tag------->", "player is stopped");
       mp.release();
       Log.d("TAG------->", "player is released");
    }
}catch(Exception e){
   //Throw the error
}

以上是一个概述,可用于包括您的情况在内的广泛领域

对于您的代码,您可以实现以下功能:

 @Override
    public void onResume() {
        mp.onResume();
        // Setup the player
        mp.resume();
    }
@Override
    public void onDestroy() {
        if(mp != null) {
            mp.release();
        }
        super.onDestroy();
    }
 s1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(mp != null)

                {
                    mp.stop();
                    mp.release();
                }
                finish();
            }
        });
}
如果有帮助,请使用日志帮助您查看生命周期

try{
    if(mp !=null && mp.isPlaying()){
       Log.d("TAG------->", "player is running");
       mp.stop();
       Log.d("Tag------->", "player is stopped");
       mp.release();
       Log.d("TAG------->", "player is released");
    }
}catch(Exception e){
   //Throw the error
}

在模拟器上?还是在真正的移动设备上?模拟器速度很慢。在真正的移动设备上,我不使用emulator,因为我必须使用messenger按钮来检查它们是否工作。很难说,我会说代码需要查看。xml并没有为我们提供太多的信息,如果您的活动中的代码不是问题的话。如果它正在从网络检索数据,它就是您的设备或连接。我添加了MainActivity类的代码。希望它能帮助找到问题。看起来按钮需要声音文件。内存和应用程序之间实际上没有任何缓冲区。如果我这样想象的话,当你真的想在点击按钮时加载特定的音频文件时,整个音频都在后台加载。您可能需要一个管理器来管理这个或多个方法,比如onDestroy、onStop等?还是在真正的移动设备上?模拟器速度很慢。在真正的移动设备上,我不使用emulator,因为我必须使用messenger按钮来检查它们是否工作。很难说,我会说代码需要查看。xml并没有为我们提供太多的信息,如果您的活动中的代码不是问题的话。如果它正在从网络检索数据,它就是您的设备或连接。我添加了MainActivity类的代码。希望它能帮助找到问题。看起来按钮需要声音文件。内存和应用程序之间实际上没有任何缓冲区。如果我这样想象的话,当你真的想在点击按钮时加载特定的音频文件时,整个音频都在后台加载。您可能希望有一个管理器来管理此功能或方法,如onDestroy、onStop等。感谢您的帮助!很抱歉问这个问题,但我很抱歉。你能告诉我你的代码在我的代码中实现了什么吗?唯一的原因是,当我尝试自己做这件事时,android studio会将
mp.*onResume*();//设置播放器mp.*恢复*()作为错误。顺便问一下,在哪里可以将mp3文件连接到按钮?在我的代码中,我使用
mp=MediaPlayer.create(MainActivity.this,R.raw.a1)实现了这一点其中a1是mp3文件。如果你能给我解释一下,我会非常感激。我发现把所有文件一起加载确实是我的应用程序很滞后的原因,但我仍然不知道如何在我的代码中实现你的方法。你能帮我吗?谢谢你的帮助!很抱歉问这个问题,但我很抱歉。你能告诉我你的代码在我的代码中实现了什么吗?唯一的原因是,当我尝试自己做这件事时,android studio会将
mp.*onResume*();//设置播放器mp.*恢复*()作为错误。顺便问一下,在哪里可以将mp3文件连接到按钮?在我的代码中,我使用
mp=MediaPlayer.create(MainActivity.this,R.raw.a1)实现了这一点其中a1是mp3文件。如果你能给我解释一下,我会非常感激。我发现把所有文件一起加载确实是我的应用程序很滞后的原因,但我仍然不知道如何在我的代码中实现你的方法。你能帮我做这个吗?