一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现

时间:2017-05-01 编辑:简简单单 来源:一聚教程网

 代码如下 复制代码

importandroid.app.Activity; 

importandroid.os.Bundle; 

importandroid.view.LayoutInflater; 

importandroid.view.MotionEvent; 

importandroid.view.View; 

importandroid.view.WindowManager; 

importandroid.widget.TextView; 

publicclassMainActivityextendsActivity { 

  privatefloatstartY =0;//手指按下时的Y坐标 

  privatefloatstartX =0;//手指按下时的Y坐标 

  privateTextView brightnessTextView; 

  privateView mVideoView; 

  @Override 

  protectedvoidonCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    mVideoView = LayoutInflater.from(this).inflate(R.layout.activity_main,null); 

    setContentView(mVideoView); 

    brightnessTextView = (TextView) mVideoView.findViewById(R.id.text); 

  } 

  /*

  * 设置屏幕亮度

  * 0 最暗

  * 1 最亮

  */ 

  publicvoidsetBrightness(floatbrightness) { 

    WindowManager.LayoutParams lp = getWindow().getAttributes(); 

    lp.screenBrightness = lp.screenBrightness + brightness /255.0f; 

    if(lp.screenBrightness >1) { 

      lp.screenBrightness =1; 

    }elseif(lp.screenBrightness <0.1) { 

      lp.screenBrightness = (float)0.1; 

    } 

    getWindow().setAttributes(lp); 

    floatsb = lp.screenBrightness; 

    brightnessTextView.setText((int) Math.ceil(sb *100) +"%"); 

  } 

  @Override 

  publicbooleanonTouchEvent(MotionEvent event) { 

    intscreenWidth = mVideoView.getWidth(); 

    switch(event.getAction()) { 

      caseMotionEvent.ACTION_DOWN: 

        startX = event.getX(); 

        startY = event.getY(); 

        break; 

      caseMotionEvent.ACTION_MOVE: 

        floatendY = event.getY(); 

        floatdistanceY = startY - endY; 

        if(startX > screenWidth /2) { 

          //右边 

          //在这里处理音量 

        }else{ 

          //屏幕左半部分上滑,亮度变大,下滑,亮度变小 

          finaldoubleFLING_MIN_DISTANCE =0.5; 

          finaldoubleFLING_MIN_VELOCITY =0.5; 

          if(distanceY > FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { 

            setBrightness(10); 

          } 

          if(distanceY < FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { 

            setBrightness(-10); 

          } 

        } 

        break; 

    } 

    returnsuper.onTouchEvent(event); 

  } 

}

activity_main.xml布局文件:

 代码如下 复制代码

 

  android:id="@+id/activity_main" 

  android:layout_width="match_parent" 

  android:layout_height="match_parent" 

  android:background="@mipmap/ic_launcher"> 

   

  

    android:id="@+id/text" 

    android:layout_width="150dp" 

    android:layout_height="50dp" 

    android:layout_gravity="center" 

    android:background="@android:color/holo_orange_light" 

    android:gravity="center" 

    android:textColor="@android:color/white"/> 

热门栏目