发现有一些主流的播放器播放电影时可以通过滑动屏幕调整屏幕亮度,其实实现起来也很容易。 主要根据滑动的方向来设置屏幕亮度,以下这个demo实现向上滑动屏幕变亮,向下滑动则屏幕变暗。当的屏幕达到最亮或最暗(20%)的时候,设备会震动,代码简单,不多说。 同时设备震动需要有权限
<uses-permission android:name="android.permission.VIBRATE" />
- packageorg.piaozhiye.demo;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.os.Vibrator;
- importandroid.util.Log;
- importandroid.view.GestureDetector;
- importandroid.view.MotionEvent;
- importandroid.view.WindowManager;
- importandroid.widget.MediaController;
- importandroid.widget.VideoView;
- publicclassMainActivityextendsActivity{
- privateVideoViewmyVideoView;
- privateStringpath="/mnt/sdcard/video/WonderGirls_Nobody(英文版).mp4";
- privateStringTAG="MainActivity";
- privateGestureDetectormGestureDetector;
- privateVibratorvibrator;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- myVideoView=(VideoView)findViewById(R.id.myvideoview);
- myVideoView.setVideoPath(path);
- myVideoView.setMediaController(newMediaController(this));
- myVideoView.requestFocus();
- myVideoView.start();
- }
- /*
- *
- *设置屏幕亮度lp=0全暗,lp=-1,根据系统设置,lp=1;最亮
- */
- publicvoidsetBrightness(floatbrightness){
- WindowManager.LayoutParamslp=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...
- vibrator.vibrate(pattern,-1);
- }elseif(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);
- }
- Log.e(TAG,"lp.screenBrightness="+lp.screenBrightness);
- getWindow().setAttributes(lp);
- }
- @Override
- protectedvoidonResume(){
- mGestureDetector=newGestureDetector(
- newGestureDetector.OnGestureListener(){
- publicbooleanonSingleTapUp(MotionEvente){
- returnfalse;
- }
- publicbooleanonDown(MotionEvente){
- returnfalse;
- }
- publicvoidonLongPress(MotionEvente){
- }
- publicbooleanonFling(MotionEvente1,MotionEvente2,
- floatvelocityX,floatvelocityY){
- returntrue;
- }
- publicbooleanonScroll(MotionEvente1,MotionEvente2,
- floatdistanceX,floatdistanceY){
- finaldoubleFLING_MIN_DISTANCE=0.5;
- finaldoubleFLING_MIN_VELOCITY=0.5;
- if(e1.getY()-e2.getY()>FLING_MIN_DISTANCE
- &&Math.abs(distanceY)>FLING_MIN_VELOCITY){
- Log.e(TAG,"up");
- setBrightness(20);
- }
- if(e1.getY()-e2.getY()<FLING_MIN_DISTANCE
- &&Math.abs(distanceY)>FLING_MIN_VELOCITY){
- Log.e(TAG,"down");
- setBrightness(-20);
- }
- returntrue;
- }
- publicvoidonShowPress(MotionEvente){
- //TODOAuto-generatedmethodstub
- }
- });
- super.onResume();
- }
- publicbooleanonTouchEvent(MotionEventevent){
- booleanresult=mGestureDetector.onTouchEvent(event);
- if(!result){
- if(event.getAction()==MotionEvent.ACTION_UP){
- //getVideoInfosfromPath(filePath);
- }
- result=super.onTouchEvent(event);
- }
- returnresult;
- }
- @Override
- protectedvoidonStop(){
- if(null!=vibrator){
- vibrator.cancel();
- }
- super.onStop();
- }
- }