Android 播放电影时滑动屏幕调整屏幕亮度

发现有一些主流的播放器播放电影时可以通过滑动屏幕调整屏幕亮度,其实实现起来也很容易。 主要根据滑动的方向来设置屏幕亮度,以下这个demo实现向上滑动屏幕变亮,向下滑动则屏幕变暗。当的屏幕达到最亮或最暗(20%)的时候,设备会震动,代码简单,不多说。 同时设备震动需要有权限

<uses-permission android:name="android.permission.VIBRATE" />

  1. packageorg.piaozhiye.demo;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.os.Vibrator;
  5. importandroid.util.Log;
  6. importandroid.view.GestureDetector;
  7. importandroid.view.MotionEvent;
  8. importandroid.view.WindowManager;
  9. importandroid.widget.MediaController;
  10. importandroid.widget.VideoView;
  11. publicclassMainActivityextendsActivity{
  12. privateVideoViewmyVideoView;
  13. privateStringpath="/mnt/sdcard/video/WonderGirls_Nobody(英文版).mp4";
  14. privateStringTAG="MainActivity";
  15. privateGestureDetectormGestureDetector;
  16. privateVibratorvibrator;
  17. /**Calledwhentheactivityisfirstcreated.*/
  18. @Override
  19. publicvoidonCreate(BundlesavedInstanceState){
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.main);
  22. myVideoView=(VideoView)findViewById(R.id.myvideoview);
  23. myVideoView.setVideoPath(path);
  24. myVideoView.setMediaController(newMediaController(this));
  25. myVideoView.requestFocus();
  26. myVideoView.start();
  27. }
  28. /*
  29. *
  30. *设置屏幕亮度lp=0全暗,lp=-1,根据系统设置,lp=1;最亮
  31. */
  32. publicvoidsetBrightness(floatbrightness){
  33. WindowManager.LayoutParamslp=getWindow().getAttributes();
  34. //if(lp.screenBrightness<=0.1){
  35. //return;
  36. //}
  37. lp.screenBrightness=lp.screenBrightness+brightness/255.0f;
  38. if(lp.screenBrightness>1){
  39. lp.screenBrightness=1;
  40. vibrator=(Vibrator)getSystemService(VIBRATOR_SERVICE);
  41. long[]pattern={10,200};//OFF/ON/OFF/ON...
  42. vibrator.vibrate(pattern,-1);
  43. }elseif(lp.screenBrightness<0.2){
  44. lp.screenBrightness=(float)0.2;
  45. vibrator=(Vibrator)getSystemService(VIBRATOR_SERVICE);
  46. long[]pattern={10,200};//OFF/ON/OFF/ON...
  47. vibrator.vibrate(pattern,-1);
  48. }
  49. Log.e(TAG,"lp.screenBrightness="+lp.screenBrightness);
  50. getWindow().setAttributes(lp);
  51. }
  52. @Override
  53. protectedvoidonResume(){
  54. mGestureDetector=newGestureDetector(
  55. newGestureDetector.OnGestureListener(){
  56. publicbooleanonSingleTapUp(MotionEvente){
  57. returnfalse;
  58. }
  59. publicbooleanonDown(MotionEvente){
  60. returnfalse;
  61. }
  62. publicvoidonLongPress(MotionEvente){
  63. }
  64. publicbooleanonFling(MotionEvente1,MotionEvente2,
  65. floatvelocityX,floatvelocityY){
  66. returntrue;
  67. }
  68. publicbooleanonScroll(MotionEvente1,MotionEvente2,
  69. floatdistanceX,floatdistanceY){
  70. finaldoubleFLING_MIN_DISTANCE=0.5;
  71. finaldoubleFLING_MIN_VELOCITY=0.5;
  72. if(e1.getY()-e2.getY()>FLING_MIN_DISTANCE
  73. &&Math.abs(distanceY)>FLING_MIN_VELOCITY){
  74. Log.e(TAG,"up");
  75. setBrightness(20);
  76. }
  77. if(e1.getY()-e2.getY()<FLING_MIN_DISTANCE
  78. &&Math.abs(distanceY)>FLING_MIN_VELOCITY){
  79. Log.e(TAG,"down");
  80. setBrightness(-20);
  81. }
  82. returntrue;
  83. }
  84. publicvoidonShowPress(MotionEvente){
  85. //TODOAuto-generatedmethodstub
  86. }
  87. });
  88. super.onResume();
  89. }
  90. publicbooleanonTouchEvent(MotionEventevent){
  91. booleanresult=mGestureDetector.onTouchEvent(event);
  92. if(!result){
  93. if(event.getAction()==MotionEvent.ACTION_UP){
  94. //getVideoInfosfromPath(filePath);
  95. }
  96. result=super.onTouchEvent(event);
  97. }
  98. returnresult;
  99. }
  100. @Override
  101. protectedvoidonStop(){
  102. if(null!=vibrator){
  103. vibrator.cancel();
  104. }
  105. super.onStop();
  106. }
  107. }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值