Android中 视频屏幕左半部分上下滑动改变亮度右半部分上下滑动改变声音_Android

说明:

实现功能:

(1)屏幕右半部分上滑,声音变大,下滑,声音变小 屏幕左半部分上滑,亮度变大,下滑,亮度变小

(2)如果亮度>1或者小于0.2时,手机震动

private float startY;//记录手指按下时的Y坐标
private float startX;//记录手指按下时的Y坐标
private int downVol;//记录手指按下时的音量
private Vibrator vibrator;//手机震动器
//不要忘记震动权限<uses-permission android:name="android.permission.VIBRATE" />
/*
* 设置屏幕亮度 lp = 0 全暗 ,lp= -1,根据系统设置, lp = 1; 最亮
*/
public void setBrightness(float brightness) {
WindowManager.LayoutParams lp = 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... 关闭10秒震动200毫秒,不停切换
vibrator.vibrate(pattern, -1);
} else if (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);
}
getWindow().setAttributes(lp);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
//把事件传递给手势识别器(注:对事件只进行了解析处理,没有拦截,解析成手势识别的单击、双击、长按)
detector.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN :
startY=event.getY();
startX=event.getX();
downVol=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
handler.removeMessages(HIDE_CONTROL);
break;
case MotionEvent.ACTION_MOVE :
float endY=event.getY();
float distanceY=startY-endY;
if(startX>screenWidth/2){
//屏幕右半部分上滑,声音变大,下滑,声音变小
int touchRang=Math.min(screenWidth,screenHeight);
//int curvol= (int) (downVol+(distance/screenHeight)*maxVolume);
int curvol= (int) (downVol+(distanceY/touchRang)*maxVolume);//考虑到横竖屏切换的问题
int volume=Math.min(Math.max(0,curvol),maxVolume);
updateVolume(volume);
}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(20);
}
if (distanceY < FLING_MIN_DISTANCE
&& Math.abs(distanceY) > FLING_MIN_VELOCITY) {
setBrightness(-20);
}
}
break;
case MotionEvent.ACTION_UP :
handler.sendEmptyMessageDelayed(HIDE_CONTROL,5000);
break;
}
return super.onTouchEvent(event);
}

以上所述是小编给大家介绍的Android中 视频屏幕左半部分上下滑动改变亮度右半部分上下滑动改变声音 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android 上下滑动抽屉、jquery上下滑动翻页、h5上下滑动切换页面、苹果鼠标不能上下滑动、swiper上下滑动,以便于您获取更多的相关知识。

时间: 2024-10-27 19:40:34

Android中 视频屏幕左半部分上下滑动改变亮度右半部分上下滑动改变声音_Android的相关文章

Android中判断屏幕是否亮屏和是否解锁功能

1.屏幕是否亮屏: PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); //true为打开,false为关闭 boolean ifOpen = powerManager.isScreenOn(); 2.屏幕是否解锁: KeyguardManager mKeyguardManager = (KeyguardManager) context.getSystemServi

Android中获取屏幕的长度和宽度

android中获取屏幕的长度和宽度,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得 到的结果却为320*533 结果很不靠谱,于是自己写了几行代码,亲测一下 测试参数: 测试环境: i9000( 三星) 物理屏幕:480*800px density :1.5 测试代码: // 获取屏幕密度(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏

Android中解决页签手指按下从左到右滑动的bug_Android

有一种方法可以阻止父层的View截获touch事件,就是调用 getParent().requestDisallowInterceptTouchEvent(true);方法. 一旦底层View收到touch的 action后调用这个方法那么父层View就不会再调用onInterceptTouchEvent了,也无法截获以后的action 在ViewPagerIndicator项目中找到TabPageIndicator该类,添加如下代码 @Override public boolean dispa

Android 中从屏幕左下角弹出Dialog动画效果的实现代码

MainActivity代码: import android.app.Dialog; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import androi

android中获得屏幕、视图、任务栏、状态栏的高宽以及屏幕的设置

首先,有一点需要声明,其实在android中,画布Canvas的高宽其实是屏幕的高宽. 如此一来,获得屏幕高宽的方法就很多了: WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); screenWidth = display.getWidth(); screenHeight = display.getHeight(); WindowManager

Android 中 SwipeLayout一个展示条目底层菜单的侧滑控件源码解析_Android

由于项目上的需要侧滑条目展示收藏按钮,记得之前代码家有写过一个厉害的开源控件 AndroidSwipeLayout 本来准备直接拿来使用,但是看过 issue 发现现在有不少使用者反应有不少的 bug ,而且代码家现在貌似也不进行维护了.故自己实现了一个所要效果的一个控件.因为只是实现我需要的效果,所以大家也能看到,代码里有不少地方我是写死的.希望对大家有些帮助.而且暂时也不需要 AndroidSwipeLayout 大而全的功能,算是变相给自己做的项目精简代码了. 完整示例代码请看:GitHu

深入Android中BroadcastReceiver的两种注册方式(静态和动态)详解_Android

今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来接收来自系统和应用中的广播.在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能:当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作:当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户

Android 中使用EditText 点击全选再次点击取消全选功能_Android

最近在开发浏览器碰到这么一个需求:点击地址栏的时候,需要全选并调出键盘,再次点击就取消全选显示光标.点击屏幕除地址栏其他位置时,键盘隐藏,隐藏光标. 大部分浏览器都是这样的逻辑,这样可以提高用户体验,减少操作. 代码很简单,这里我简化了逻辑,页面只有一个EditText. 布局文件如下:里面有两个属性需要注意 android:focusable="true" android:selectAllOnFocus="true" 完整布局文件 <?xml versio

Android中利用NetworkInfo判断网络状态时出现空指针(NullPointerException)问题的解决方法_Android

在Android中,很多人会用如下的方法判断当前网络是否可用: /** * 获取当前网络状态(是否可用) */ public static boolean isNetworkAvailable() { boolean isAalable = false; ConnectivityManager connManager = (ConnectivityManager) BaseApplication.getApplication().getSystemService(Context.CONNECTI