Android中 視頻屏幕左半部分上下滑動(dòng)改變亮度右半部分上下滑動(dòng)改變聲音
說明:
實(shí)現(xiàn)功能:
(1)屏幕右半部分上滑,聲音變大,下滑,聲音變小 屏幕左半部分上滑,亮度變大,下滑,亮度變小
(2)如果亮度>1或者小于0.2時(shí),手機(jī)震動(dòng)
private float startY;//記錄手指按下時(shí)的Y坐標(biāo) private float startX;//記錄手指按下時(shí)的Y坐標(biāo) private int downVol;//記錄手指按下時(shí)的音量 private Vibrator vibrator;//手機(jī)震動(dòng)器 //不要忘記震動(dòng)權(quán)限<uses-permission android:name="android.permission.VIBRATE" /> /* * 設(shè)置屏幕亮度 lp = 0 全暗 ,lp= -1,根據(jù)系統(tǒng)設(shè)置, lp = 1; 最亮 */ public void setBrightness(float brightness) { WindowManager.LayoutParams lp = getWindow().getAttributes(); // if (lp.screenBrightness <= 0.1) { // return; // } lp.screenBrightness = lp.screenBrightness + brightness / 255.0f; if (lp.screenBrightness > 1) { lp.screenBrightness = 1; vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); long[] pattern = { 10, 200 }; // OFF/ON/OFF/ON... 關(guān)閉10秒震動(dòng)200毫秒,不停切換 vibrator.vibrate(pattern, -1); } else if (lp.screenBrightness < 0.2) { lp.screenBrightness = (float) 0.2; vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); long[] pattern = { 10, 200 }; // OFF/ON/OFF/ON... vibrator.vibrate(pattern, -1); } getWindow().setAttributes(lp); } @Override public boolean onTouchEvent(MotionEvent event) { //把事件傳遞給手勢(shì)識(shí)別器(注:對(duì)事件只進(jìn)行了解析處理,沒有攔截,解析成手勢(shì)識(shí)別的單擊、雙擊、長(zhǎng)按) detector.onTouchEvent(event); switch (event.getAction()) { case MotionEvent.ACTION_DOWN : startY=event.getY(); startX=event.getX(); downVol=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); handler.removeMessages(HIDE_CONTROL); break; case MotionEvent.ACTION_MOVE : float endY=event.getY(); float distanceY=startY-endY; if(startX>screenWidth/2){ //屏幕右半部分上滑,聲音變大,下滑,聲音變小 int touchRang=Math.min(screenWidth,screenHeight); //int curvol= (int) (downVol+(distance/screenHeight)*maxVolume); int curvol= (int) (downVol+(distanceY/touchRang)*maxVolume);//考慮到橫豎屏切換的問題 int volume=Math.min(Math.max(0,curvol),maxVolume); updateVolume(volume); }else{ //屏幕左半部分上滑,亮度變大,下滑,亮度變小 final double FLING_MIN_DISTANCE = 0.5; final double FLING_MIN_VELOCITY = 0.5; if (distanceY > FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { setBrightness(20); } if (distanceY < FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { setBrightness(-20); } } break; case MotionEvent.ACTION_UP : handler.sendEmptyMessageDelayed(HIDE_CONTROL,5000); break; } return super.onTouchEvent(event); }
以上所述是小編給大家介紹的Android中 視頻屏幕左半部分上下滑動(dòng)改變亮度右半部分上下滑動(dòng)改變聲音 ,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- android 屏幕亮度調(diào)節(jié)方法詳解
- Android調(diào)節(jié)屏幕亮度實(shí)現(xiàn)代碼
- android 如何設(shè)置開機(jī)后屏幕亮度默認(rèn)值為自動(dòng)調(diào)節(jié)
- Android編程調(diào)節(jié)屏幕亮度(背景燈)及保持背景燈常亮的方法
- Android視頻播放器屏幕左側(cè)邊隨手指上下滑動(dòng)亮度調(diào)節(jié)功能的原理實(shí)現(xiàn)
- Android編程設(shè)置屏幕亮度的方法
- Android開發(fā)實(shí)現(xiàn)調(diào)節(jié)屏幕亮度功能
相關(guān)文章
Android 中RecyclerView通用適配器的實(shí)現(xiàn)
這篇文章主要介紹了Android 中RecyclerView通用適配器的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-03-03基于barcodescanner實(shí)現(xiàn)Android二維碼掃描功能
這篇文章主要為大家詳細(xì)介紹了基于barcodescanner實(shí)現(xiàn)Android二維碼掃描功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Android自定義一個(gè)圖形單點(diǎn)移動(dòng)縮小的效果
本文通過實(shí)例代碼給大家介紹了android 自定義圖形單點(diǎn)移動(dòng)縮小效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-08-08android組件SwipeRefreshLayout下拉小球式刷新效果
這篇文章主要為大家詳細(xì)介紹了android組件SwipeRefreshLayout下拉小球式刷新效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Android開發(fā)之CheckBox的簡(jiǎn)單使用與監(jiān)聽功能示例
這篇文章主要介紹了Android開發(fā)之CheckBox的簡(jiǎn)單使用與監(jiān)聽功能,結(jié)合簡(jiǎn)單實(shí)例形式分析了Android使用CheckBox控件的布局與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07Android開發(fā)調(diào)用WebService的方法示例
這篇文章主要介紹了Android開發(fā)調(diào)用WebService的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android調(diào)用WebService的原理、實(shí)現(xiàn)方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-10-10SurfaceView開發(fā)[捉小豬]手機(jī)游戲 (二)
這篇文章主要介紹了用SurfaceView開發(fā)[捉小豬]手機(jī)游戲 (二)本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08Android Jetpack庫(kù)剖析之Lifecycle組件篇
本章也是帶來了Jetpack中我認(rèn)為最重要的架構(gòu)組件Lifecycle的原理探索,至于為什么覺得它是最重要是因?yàn)橄馰iewModel,LiveData這些組件也依賴于Lifecycle來感知宿主的生命周期,那么本章我們帶著幾個(gè)問題來探索一下這個(gè)組件2022-07-07基于Flutter實(shí)現(xiàn)風(fēng)車加載組件的制作
Flutter官方提供了諸如 CircularProgressIndicator和 LinearProgressIndicator兩種常見的加載指示組件,但是說實(shí)話,實(shí)在太普通,所以本文將用Flutter自定義一個(gè)風(fēng)車加載組件,需要的可以參考一下2022-03-03