Android工具之实现上下滑动屏幕控制音量,同时绑定物理键

来源:互联网 发布:tp路由器访客网络设置 编辑:程序博客网 时间:2024/06/06 09:45
private double startY;private double touchRange;@Overridepublic boolean onTouchEvent(MotionEvent event) {    detector.onTouchEvent(event);    switch(event.getAction()){        case MotionEvent.ACTION_DOWN:            startY = event.getY();            touchRange = Math.min(screenHeight,screenWidth);            handler.removeMessages(HIDE_MEDIA_CONTROL);            break;        case MotionEvent.ACTION_MOVE:            //handler.removeMessages(HIDE_MEDIA_CONTROL);//不要在这里移除,因为move会被调用很多次            double endY = event.getY();            double disY = startY-endY;            //改变音量 = (移动高度/屏幕高度)*总音量;            int delta = (int) Math.floor((disY/touchRange)*maxVolume);            //最终声音 = 原来声音+改变音量            if(delta!=0){                isMute = false;                currentVolume =Math.min(maxVolume,Math.max(0,currentVolume+delta));                updateVolume(currentVolume,isMute);            }            //startY = event.getY();//不要加这句,不然对距离变化不敏感            break;        case MotionEvent.ACTION_UP:            handler.sendEmptyMessageDelayed(HIDE_MEDIA_CONTROL,3000);            break;    }    return super.onTouchEvent(event);}
/**绑定音量调节物理键*/
public boolean onKeyDown(int keyCode, KeyEvent event) {    if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN){        currentVolume--;        updateVolume(currentVolume,false);        return true;//返回true表示消费行为,不再调起系统音量显示    }else if(keyCode==KeyEvent.KEYCODE_VOLUME_UP){        currentVolume++;        updateVolume(currentVolume,false);        return true;//可以不移除再重发控制面板的消息    }    return super.onKeyDown(keyCode, event);}

private void updateVolume(int progress,boolean isMute) {    if(isMute){        seekbarVoice.setProgress(0);        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0,0);//最后一项flag1调用系统音量控制,0则不出现    }else{        currentVolume = progress;        seekbarVoice.setProgress(currentVolume);        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,currentVolume,0);//最后一项flag1调用系统音量控制,0则不出现    }}

阅读全文
0 0
原创粉丝点击