GitHub地址:https://github.com/lyric315/CustomVolueAdjust
定义
CustomVolueAdjust是一个Android自定义音量弹窗Demo,当用户按下音量按键后,将系统音量弹窗替换为我们自定义的音量弹窗。
原理
Android系统音量按键的控制逻辑在PhoneWindow类中
//PhoneWindow的onKeyDown用于方法处理音量按键
protected boolean onKeyDown(int featureId, int keyCode, KeyEvent event) {
final KeyEvent.DispatcherState dispatcher =
mDecor != null ? mDecor.getKeyDispatcherState() : null;
//Log.i(TAG, "Key down: repeat=" + event.getRepeatCount()
// + " flags=0x" + Integer.toHexString(event.getFlags()));
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP://调大音量
case KeyEvent.KEYCODE_VOLUME_DOWN://调小音量
case KeyEvent.KEYCODE_VOLUME_MUTE: {
if (mMediaController != null) {
int direction