播放按钮的默认android声音,点击onTouch()方法 [英] Playing default android sound of button, clicking onTouch() method

查看:37
本文介绍了播放按钮的默认android声音,点击onTouch()方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 android 应用程序中,我有一些按钮,应该使用 onTouch() 方法,当然我需要更改按钮的文本,当手指处于 ACTION_DOWN 位置时.但是这个按钮应该播放默认按钮点击的android声音(就像在onClick()方法中一样).我在哪里可以找到这样的声音?我想,它必须在 SDK 中,但我怎样才能找到它呢?什么方法更适合这种操作?我正在使用 MediaPlayer.

In my android app I have some buttons, that should work with onTouch() method, course I need to change button's text, when finger in ACTION_DOWN position. But this buttons should to play default android sound of button clicking (like in onClick() method). Where I can find such sound? I think, it must be in SDK, but how can I find it? And what methods are better for such operation? I'm using MediaPlayer.

列表:

public boolean onTouch(View v, MotionEvent event) {
    int action = event.getAction();
    switch (action) {
    case MotionEvent.ACTION_DOWN:
        addTextShadow(v);
        Log.v(LOG_TAG, "ACTION_DOWN");
        break;
    case MotionEvent.ACTION_MOVE:
        clearTextShadow(v);
        isMoved = true;
        Log.v(LOG_TAG, "ACTION_MOVE");
        break;
    case MotionEvent.ACTION_UP:
        Log.v(LOG_TAG, "ACTION_UP");
        if (!isMoved) {
            clearTextShadow(v);
            if (v.getId() == R.id.btn_new) {
                Log.v(LOG_TAG, "New pressed");

                            playSound(); //MY METHOD TO PLAY SOUND

            } else if (v.getId() == R.id.btn_saved) {
                Log.v(LOG_TAG, "Saved pressed");
            } else if (v.getId() == R.id.btn_random) {
                Log.v(LOG_TAG, "Random pressed");
            }
        }
        isMoved = false;
        break;
    }
    return true;
}

还有我的 playSound() 方法:

And my playSound() method:

    public void playSound(){
    if (mp != null) {
        mp.release();
        mp = null;
    }
    try {
        mp = MediaPlayer
    .create(MyActivity.this, R.raw.sound); //BUT HERE I NEED DEFAULT SOUND!
        mp.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

推荐答案

在您的 onTouch() 方法中使用此代码:

Use this code in your onTouch() method:

view.playSoundEffect(android.view.SoundEffectConstants.CLICK);

如果您只是在寻找预设的 Android 声音,那么最好使用框架免费提供给您的此功能.做任何其他事情,除非定制是必要的,否则只会导致您反对框架而不是使用它.

If you are simply looking for a preset Android sound then it's better to use this functionality that's provided to you for free by the framework. Doing anything else, unless necessary for customization, would simply result in you working against the framework instead of working with it.

这篇关于播放按钮的默认android声音,点击onTouch()方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆