


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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年福建省中考英语试卷真题(含标准答案)
- 课课练初中英语七年级上册答案
- 财务体制优化设计工程建议书
- 讲座二 常见气体的制备(精讲)-2023年高考化学大一轮复习精讲精练(解析版)
- 记账实操-酒店业会计账务处理
- 计量标准器具:化学计量标准器具相关行业投资方案
- 滋补品店铺运营方案设计
- 2025年高考语文备考之常见易错成语1700例
- 科技公司实验室管理制度
- T/CCT 011-2020干法选煤技术规范
- 2024-2025 学年八年级英语下学期期末模拟卷 (深圳专用)原卷
- 2024广西农村信用社(农村商业银行农村合作银行)乡村振兴人才招聘946人笔试历年典型考题及考点剖析附带答案详解
- 仿制药项目立项可行性报告
- 怀孕私了赔偿协议书
- 秸秆主题班会课件
- 《GPCR信号转导》课件
- 医院围手术期管理制度
评论
0/150
提交评论