


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android中如何使用重力传感器实现横竖屏放向切换功能
package
com.d1ev.touch.App.helper;
import
android.app.Activity;
import
android.content.pm.ActivityInfo;
import
android.util.Log;
import
android.view.OrientationEventListener;
import
java.lang.ref.WeakReference;
/**
*
Created
by
Administrator
on
2016/12/3
0003.
*
监听重力系统传感器的变化,为Vr视频播放器而定制
*/
public
class
MySensorHelper
{
private
static
final
String
TAG
=
MySensorHelper.class.getSimpleName();
private
OrientationEventListener
mLandOrientationListener;
private
OrientationEventListener
mPortOrientationListener;
private
WeakReference<Activity>
mActivityWeakRef;
private
boolean
isPortLock
=
false;
private
boolean
isLandLock=false;
public
MySensorHelper(final
Activity
activity)
{
this.mActivityWeakRef
=
new
WeakReference(activity);
this.mLandOrientationListener
=
new
OrientationEventListener(activity,
3)
{
public
void
onOrientationChanged(int
orientation)
{
Log.d(MySensorHelper.TAG,
"mLandOrientationListener");
if(orientation
<
100
&&
orientation
>
80
||
orientation
<
280
&&
orientation
>
260)
{
Log.e(MySensorHelper.TAG,
"转到了横屏");
if(!MySensorHelper.this.isLandLock)
{
Activity
mActivity
=
(Activity)MySensorHelper.this.mActivityWeakRef.get();
if(mActivity
!=
null)
{
Log.e(MySensorHelper.TAG,
"转到了横屏##################");
mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
isLandLock=true;
isPortLock=false;
}
}
}
}
};
this.mPortOrientationListener
=
new
OrientationEventListener(activity,
3)
{
public
void
onOrientationChanged(int
orientation)
{
Log.w(MySensorHelper.TAG,
"mPortOrientationListener");
if(orientation
<
10
||
orientation
>
350
||
orientation
<
190
&&
orientation
>
170)
{
Log.e(MySensorHelper.TAG,
"转到了竖屏");
if(!MySensorHelper.this.isPortLock)
{
Activity
mActivity
=
(Activity)MySensorHelper.this.mActivityWeakRef.get();
if(mActivity
!=
null)
{
Log.e(MySensorHelper.TAG,
"转到了竖屏!!!!!!!!!!!!!!!!!!!!!!");
mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
isPortLock=true;
isLandLock=false;
}
}
}
}
};
//this.disable();
}
//禁用切换屏幕的开关
public
void
disable()
{
Log.e(TAG,
"disable");
this.mPortOrientationListener.disable();
this.mLandOrientationListener.disable();
}
//开启横竖屏切换的开关
public
void
enable(){
this.mPortOrientationListener.enable();
this.mLandOrientationListener.enable();
}
//设置竖屏是否上锁,true锁定屏幕,fanle解锁
public
void
setPortLock(boolean
lockFlag)
{
this.isPortLock
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业园区的资源分配与管理
- 工业废水处理技术与环境治理研究
- 工业安全生产管理与预防策略
- 工业废水处理技术的研究与应用
- 工业自动化中新材料技术的趋势分析
- 工业污染防治与环保设备应用
- 工业物联网的远程监控与维护系统设计
- 工业机械自动化系统的可靠性保障
- 工业设计中的智能产品解决方案
- 工作与休息的平衡对残疾人群的特别意义
- 2025年四川省成都市中考语文真题(原卷版)
- 璀璨冒险人二部合唱简谱天使
- 2025年包头市钢兴实业(集团)有限公司招聘笔试冲刺题(带答案解析)
- 滋补品店铺运营方案设计
- 2025年高考语文备考之常见易错成语1700例
- 科技公司实验室管理制度
- 2024-2025 学年八年级英语下学期期末模拟卷 (深圳专用)原卷
- 2024广西农村信用社(农村商业银行农村合作银行)乡村振兴人才招聘946人笔试历年典型考题及考点剖析附带答案详解
- 仿制药项目立项可行性报告
- 怀孕私了赔偿协议书
- 秸秆主题班会课件
评论
0/150
提交评论