Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现
作者:IT的鱼 发布时间:2022-09-12 23:27:10
标签:android,视频播放器,亮度调节
本文给大家分享Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现,具体代码如下所示:
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>
以上所述是小编给大家介绍的Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现网站的支持!
来源:http://blog.csdn.net/qq_32521313/article/details/56832974
0
投稿
猜你喜欢
- Java String对象使用方法详解先来看一个例子,代码如下: public class Test { public sta
- 目录首先必须要有一个个人微信公众号效果图后台路由代码完整代码首先必须要有一个个人微信公众号个人微信公众号相关的接口权限有限,不过用于个人学习
- mybatis自动生成实体类、mapper文件、mapper.xml文件若采用mybatis框架,数据库新建表,手动编写的话,需要编写大量的
- 本文实例为大家分享了C#导出Excel的具体代码,供大家参考,具体内容如下using System;using System.Collect
- Spring Security简介:Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块
- 通过XmlDocument类修改XML文档数据,通常需要以下几个主要步骤或其中几个步骤。(1)获取一个包含XML文档数据的XmlDocume
- 引言上一节讲了列表和长按事件autojs模仿QQ长按弹窗菜单弹窗菜单由粗到细, 自顶向下的写代码我们现在要修改的文件是showMenuWin
- 本文实例讲述了Android动画之补间动画。分享给大家供大家参考,具体如下:前面讲了《Android动画之逐帧动画(Frame Animat
- 1. xml文件中加入自定义 搜索view<com.etoury.etoury.ui.view.IconCenterEditText
- Service层:public int addUser(UserDomian user){ int i = userMapper
- 尽管Java提供了一个可以处理文件的IO操作类。 但是没有一个复制文件的方法。 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时
- 后台生成验证码工具方法 /* * 设置图片的背景色 */ public static v
- using System.Drawing;using System.Drawing.Imaging;using System.IO;usin
- 关于java的字符串处理我们一般使用String类和StringBuffer类那么String类和StringBuffer类的区
- 在本次项目中,由于时间紧张直接使用DWR做Ajax请求!要求的是动态展示,那就需要使用DWR轮询请求,但是需要做异常情况下的一些处理!特别是
- 因为最近重新看了泛型,又看了些反射,导致我对Object、T(以下代指泛型)、?产生了疑惑。我们先来试着理解一下Object类,学习Java
- 本文设计一个简单的班级管理系统,满足如下要求:1、设计学生类Student,包含学号(String型)、姓名(String型)、
- 一.理论准备KMP算法为什么比传统的字符串匹配算法快?KMP算法是通过分析模式串,预先计算每个位置发生不匹配的时候,可以省去重新匹配的的字符
- 本文实例为大家分享了Android实现系统日历同步日程的具体代码,供大家参考,具体内容如下1、权限<uses-permission a
- bootstrap和application的区别说明bootstrap和application都是SpringBoot项目中的配置文件,他们