Android 屏幕旋转(横竖设置)

经常在开发中,比如视频播放这种情况,当用户点击全屏播放的时候,我们需要切换手机屏幕,当然我们可以从像以前一样,在AndroidManifest给Activity设置好预先设置,然后通过点击进入这个页面。

//横屏设置;
android:screenOrientation="landscape"  
//竖屏设置;
android:screenOrientation="portrait"  

但是实际情况,我们不需要那么做,最理想的情况当然是在一个页面,动态设置横竖屏,但是也有弊端,当手机开启自动旋转屏幕(重力感应)的时候,我们的布局会被打乱,因为我们横屏设置的50dp,切换到竖屏的时候50dp就不一样了。

//横屏设置  
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  

//竖屏设置 
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  

当然你也可以监听重力感应。

private final void startOrientationChangeListener() {  
 mOrientationListener = new OrientationEventListener(this) {  
 @Override  
 public void onOrientationChanged(int rotation) {  
 if (((rotation >= 0) && (rotation <= 45)) || (rotation >= 315)||((rotation>=135)&&(rotation<=225))) {//portrait  
 mCurrentOrient = true;  
 if(mCurrentOrient!=mScreenProtrait)  
 {  
 mScreenProtrait = mCurrentOrient;  
 OrientationChanged(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  
 Log.d(TAG, "Portrait!");  
 }  
 }  
 else if (((rotation > 45) && (rotation < 135))||((rotation>225)&&(rotation<315))) {//landscape  
 mCurrentOrient = false;  
 if(mCurrentOrient!=mScreenProtrait)  
 {  
 mScreenProtrait = mCurrentOrient;  
 OrientationChanged(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  
 Log.d(TAG, "Landscape!");  
 }  
 }  
 }  
 };  
 mOrientationListener.enable();  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值