Android视频播放器屏幕左侧边随手指上下滑动亮度调节变暗变亮原理实现详解手机开发

Java代码:
package zhangphil.app; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.WindowManager; 
import android.widget.TextView; 
 
public class MainActivity extends Activity { 
    private float startY = 0;//手指按下时的Y坐标 
    private float startX = 0;//手指按下时的Y坐标 
 
    private TextView brightnessTextView; 
    private View mVideoView; 
 
    @Override 
    protected void onCreate(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 最亮 
    */ 
    public void setBrightness(float brightness) { 
        WindowManager.LayoutParams lp = getWindow().getAttributes(); 
        lp.screenBrightness = lp.screenBrightness + brightness / 255.0f; 
        if (lp.screenBrightness > 1) { 
            lp.screenBrightness = 1; 
        } else if (lp.screenBrightness < 0.1) { 
            lp.screenBrightness = (float) 0.1; 
        } 
        getWindow().setAttributes(lp); 
 
        float sb = lp.screenBrightness; 
        brightnessTextView.setText((int) Math.ceil(sb * 100) + "%"); 
    } 
 
    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
        int screenWidth = mVideoView.getWidth(); 
 
        switch (event.getAction()) { 
            case MotionEvent.ACTION_DOWN: 
                startX = event.getX(); 
                startY = event.getY(); 
                break; 
 
            case MotionEvent.ACTION_MOVE: 
                float endY = event.getY(); 
                float distanceY = startY - endY; 
                if (startX > screenWidth / 2) { 
                    //右边 
                    //在这里处理音量 
                } 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(10); 
                    } 
                    if (distanceY < FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { 
                        setBrightness(-10); 
                    } 
                } 
                break; 
        } 
 
        return super.onTouchEvent(event); 
    } 
}

activity_main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@mipmap/ic_launcher"> 
 
    <TextView 
        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" /> 
</FrameLayout>

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/3132.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论