3

我正在尝试自定义媒体音量控制器的主题(我不知道它叫什么,只是尝试命名它)。这就像我们在游戏中按下音量按钮(+ 和 -)时出现的带有“媒体音量”标题的 Toast。但是不知道是哪个View,还是Toast,Dialog。就我而言,我找不到任何引用它的东西。只有Activity.setVolumeControlStream(AudioManager.STREAM_MUSIC) 才能在您的 Activity 中启用它,仅此而已 >_< 如果有人知道如何自定义它,或者只是它的名称,请帮助我!谢谢。

4

2 回答 2

7

很抱歉我误解了你的问题。

我认为您可以自定义“媒体音量控制器”的方式是自己控制音量并显示您的自定义视图(或 Toast)。因为“媒体音量”Toast(它是一个 Toast,参见VolumePanel.onShowVolumeChanged的​​源代码)是由您无法自定义的 android 系统创建和显示的。

这是可能解决您的问题的示例代码:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
        // Or use adjustStreamVolume method.
        am.adjustVolume(AudioManager.ADJUST_RAISE, AudioManager.FLAG_PLAY_SOUND);
        Toast.makeText(this, "Volume up", Toast.LENGTH_SHORT).show();
        return false;
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        // Or use adjustStreamVolume method.
        am.adjustVolume(AudioManager.ADJUST_LOWER, AudioManager.FLAG_PLAY_SOUND);
        Toast.makeText(this, "Volume down", Toast.LENGTH_SHORT).show();
        return false;
    }
    return super.onKeyDown(keyCode, event);
}
于 2010-10-10T01:30:29.360 回答
0

您可以覆盖onKeyDown您的游戏活动。并根据刚刚按下的键显示“Toast”。onKeyDown当您在 Activity 中按下某个键时,将调用该方法。以下是示例代码:

public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
        // show volumn up toast
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        // show volumn down toast
    }
    return super.onKeyDown(keyCode, event);
}
于 2010-10-08T14:46:22.667 回答