Android中 視頻屏幕左半部分上下滑動改變亮度右半部分上下滑動改變聲音
說明:
實現(xiàn)功能:
(1)屏幕右半部分上滑,聲音變大,下滑,聲音變小 屏幕左半部分上滑,亮度變大,下滑,亮度變小
(2)如果亮度>1或者小于0.2時,手機震動
private float startY;//記錄手指按下時的Y坐標 private float startX;//記錄手指按下時的Y坐標 private int downVol;//記錄手指按下時的音量 private Vibrator vibrator;//手機震動器 //不要忘記震動權限<uses-permission android:name="android.permission.VIBRATE" /> /* * 設置屏幕亮度 lp = 0 全暗 ,lp= -1,根據(jù)系統(tǒng)設置, 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... 關閉10秒震動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) { //把事件傳遞給手勢識別器(注:對事件只進行了解析處理,沒有攔截,解析成手勢識別的單擊、雙擊、長按) 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中 視頻屏幕左半部分上下滑動改變亮度右半部分上下滑動改變聲音 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
Android 中RecyclerView通用適配器的實現(xiàn)
這篇文章主要介紹了Android 中RecyclerView通用適配器的實現(xiàn)的相關資料,需要的朋友可以參考下2017-03-03基于barcodescanner實現(xiàn)Android二維碼掃描功能
這篇文章主要為大家詳細介紹了基于barcodescanner實現(xiàn)Android二維碼掃描功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07android組件SwipeRefreshLayout下拉小球式刷新效果
這篇文章主要為大家詳細介紹了android組件SwipeRefreshLayout下拉小球式刷新效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02Android開發(fā)之CheckBox的簡單使用與監(jiān)聽功能示例
這篇文章主要介紹了Android開發(fā)之CheckBox的簡單使用與監(jiān)聽功能,結(jié)合簡單實例形式分析了Android使用CheckBox控件的布局與功能實現(xiàn)技巧,需要的朋友可以參考下2017-07-07Android開發(fā)調(diào)用WebService的方法示例
這篇文章主要介紹了Android開發(fā)調(diào)用WebService的方法,結(jié)合實例形式較為詳細的分析了Android調(diào)用WebService的原理、實現(xiàn)方法與相關操作注意事項,需要的朋友可以參考下2017-10-10SurfaceView開發(fā)[捉小豬]手機游戲 (二)
這篇文章主要介紹了用SurfaceView開發(fā)[捉小豬]手機游戲 (二)本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08Android Jetpack庫剖析之Lifecycle組件篇
本章也是帶來了Jetpack中我認為最重要的架構(gòu)組件Lifecycle的原理探索,至于為什么覺得它是最重要是因為像ViewModel,LiveData這些組件也依賴于Lifecycle來感知宿主的生命周期,那么本章我們帶著幾個問題來探索一下這個組件2022-07-07