简体   繁体   English

使图像按钮表现为切换按钮

[英]Make Image Button Behave Like a Toggle Button

How can I have an on and off state for an Image Button? 如何设置图像按钮的打开和关闭状态? My goal is to have sound play when the image button is clicked, and for sound to stop when the button is clicked again. 我的目标是在单击图像按钮时播放声音,并在再次单击按钮时停止声音。 Thank you! 谢谢!

There are a few View s that exist in Android that provide toggle functionality like you are looking for. Android中存在一些View ,它们提供所需的切换功能。 You might want to research the android.widget.CompoundButton class for ideas, or reference this tutorial . 您可能需要研究android.widget.CompoundButton类以获取想法,或参考本教程

you can use event's. 您可以使用事件的。 like on click listener. 就像点击监听器一样。 get your imageView and setOnClickListener for this. 让你的这个ImageView的setOnClickListener。

ImageView mImageView = (ImageView) findViewById(R.id.sound_imageView);
Boolean flag = false;
mImageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(flag) {
                //play sound
                flag = false;
            } else {
                //stop sound
                flag = true;
            } 
        }
    });

You can do it manually. 您可以手动执行。 First when you will click the button you will check whether the music is running or not. 首先,当您单击按钮时,将检查音乐是否正在运行。 If it is running then stop it , if not running then play it. 如果它正在运行,则停止它;如果它不在运行,则播放它。 Something like that - 像这样-

    imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(musicPlayer!=null && musicPlayer.isPlaying()){
                musicPlayer.stop();
            }else{
                musicPlayer=new MediaPlayer();
                AssetFileDescriptor afd = getActivity().getAssets().openFd("AudioFile.mp3");
                musicPlayer.setDataSource(afd.getFileDescriptor());
                musicPlayer.prepare();
                musicPlayer.start();
            }
        }
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM