2013-08-20 27 views
3

当按下volume_up/volume_down键时,是否可以隐藏音量ui?我明白,当它显示一个对话框时,当它看起来不起作用时,它可以通过一个活动来完成。在对话框中按下音量降低时隐藏UI

有没有解决方法?

+0

你是什么意思卷UI?你的意思是屏幕上方的音量级别对话框? –

+0

这是一个很好的问题,你在谈论什么音量UI?答案并不重要,因为你可以访问调用它并关闭它的方法。 –

+0

与此相似吗? http://stackoverflow.com/questions/14563208/android-hide-volume-change-bar-from-device – Max

回答

7

这应该与Dialog类工作的敬酒消息:

AudioManager man = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
dialog.setOnKeyListener(new OnKeyListener() { 
    @Override 
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
     switch (event.getKeyCode()) { 
      case KeyEvent.KEYCODE_VOLUME_UP: 
       man.adjustStreamVolume(AudioManager.STREAM_MUSIC, 
        AudioManager.ADJUST_RAISE, 
        AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); 
       return true; 
      case KeyEvent.KEYCODE_VOLUME_DOWN: 
       man.adjustStreamVolume(AudioManager.STREAM_MUSIC, 
        AudioManager.ADJUST_LOWER, 
        AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); 
       return true; 
      default: 
       return super.onKeyDown(keyCode, event); 
     } 
    } 
}); 

就像在Android: Hide Volume change bar from device?

+0

嗨,我试过了,但UI滑块仍然显示。唯一不同的是 man =(AudioManager)getActivity()。getSystemService(Context.AUDIO_SERVICE); – sean

+0

对我来说 - Android 2.3.3 - 它的工作。你使用什么版本?你可以尝试设置一个Log.d当一个按钮被按下,这样你就可以看到它是否被调用?你能告诉我们你的完整代码吗? – Max

+0

你的解决方案是正确的。问题是由我的代码中的问题引起的。我已更新我的代码以显示更改 – sean

-2

你试过setVisibility(View.INVISIBLE)吗?也去和可见。

2

试试这个代码,它应该禁用卷

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)){ 
     //Do something to hide the view 
     AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE); 
     manager.adjustVolume(AudioManager.ADJUST_LOWER, 0); 
    } 
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)){ 
     //Do something to hide the view 
     AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE); 
     manager.adjustVolume(AudioManager.ADJUST_RAISE, 0); 
    } 
    return true; 
} 
+0

嗨,音量滑块仍然显示。 – sean

+0

@sean尝试新的修改后的代码 –