有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android OnClick播放声音并更改按钮图像。

我想创建一个简单的应用程序,它有一个带有图像(ben1)的按钮,当您单击该按钮时,它将播放一个音频剪辑(audiofile),图像将更改为第二个图像(ben2)

一旦不再单击按钮,图像将变回原始图像

我目前有以下代码,当点击按钮时播放音频文件

下面是我从另一个应用程序中得到的代码,它在点击按钮时改变了按钮图像

有人能帮我准确地合并这些论文吗

播放音频文件

public class MainActivity extends Activity{

private SoundPool soundPool;
private int soundID;
boolean loaded = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    final MediaPlayer benSoundMP = MediaPlayer.create(this,R.raw.audiofile);

    Button playbenSound = (Button) this.findViewById(R.id.button1);
    playbenSound.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            benSoundMP.start();
        }
    });
  }
}

更改按钮图像

public class MainActivity extends Activity {
ImageButton button;



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

      button= (ImageButton)findViewById(R.id.button);
      button.setOnClickListener(imgButtonHandler);
        }
        View.OnClickListener imgButtonHandler = new View.OnClickListener() {

        public void onClick(View v) {
            button.setBackgroundResource(R.drawable.icon_red);

        }
    };
}

共 (2) 个答案

  1. # 1 楼答案

    删除imgButtonHandler并添加以下内容:

    button.setOnClickListener(new OnclickListener(){
       public void onClick(View v) {
            button.setBackgroundResource(R.drawable.icon_red);
        }
    });
    
  2. # 2 楼答案

    正确的方法是将选择器xml设置为按钮的资源

    <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false" android:drawable="@drawable/button_standby"/> <item android:state_pressed="true" android:drawable="@drawable/button_pressed"/> </selector>

    你不需要在按钮侦听器中更改或添加任何内容,在布局上的按钮声明中,你添加这个文件作为背景