![【移动应用开发技术】Android中如何使用重力传感器实现横竖屏放向切换功能_第1页](http://file4.renrendoc.com/view/ddd433eb0d7aff663b60cd3cc9f73c24/ddd433eb0d7aff663b60cd3cc9f73c241.gif)
![【移动应用开发技术】Android中如何使用重力传感器实现横竖屏放向切换功能_第2页](http://file4.renrendoc.com/view/ddd433eb0d7aff663b60cd3cc9f73c24/ddd433eb0d7aff663b60cd3cc9f73c242.gif)
![【移动应用开发技术】Android中如何使用重力传感器实现横竖屏放向切换功能_第3页](http://file4.renrendoc.com/view/ddd433eb0d7aff663b60cd3cc9f73c24/ddd433eb0d7aff663b60cd3cc9f73c243.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年高中语文第三单元小说210阿Q正传节选课时作业粤教版必修4
- 2024-2025学年度九年级物理全册16.4变阻器教学设计2新版新人教版
- 2024-2025学年八年级科学下册第一章电与磁第六节家庭用电作业设计新版浙教版
- 2024-2025学年高中数学课时分层作业10系统抽样含解析新人教A版必修3
- 2024-2025学年新教材高中数学第十章概率章末演练巩固提升新人教A版必修第二册
- 21《雪孩子》教学设计-2024-2025学年统编版语文二年级上册
- Module 2 unit3 language in use 教学设计2024-2025学年外研版八年级上册英语
- Unit 2 Making a difference Understanding ideas 单元教学设计-2023-2024学年高一下学期英语外研版(2019)必修第三册
- 电影特效技术的教学与商业应用前景
- 电子商务在教育领域的创新应用
- 室内钢结构隔层施工合同
- 荣威iMAX8汽车说明书
- 山东省潍坊市高职单招2023年英语自考测试卷(含答案)
- 工科高等数学(下)知到章节答案智慧树2023年上海海洋大学
- 儿童羽毛球教程
- 通信工程安全生产手册
- 流程成熟度模型(PEMM)
- 催化动力学分析法及其应用
- 外研版英语九年级下册词汇表音标打印
- 联合国教科文组织(UNESCO):可持续发展教育-路线图
- 延长保修服务
评论
0/150
提交评论