4.0上设备屏幕旋转依赖设备的探索

    开发一个App,如果在手机上运行,我希望它能够竖屏显示,如果在一个平板上运行,我希望它可以横竖切换。那么如果判断设备是一个平板还是一个手机呢?可以根据获取设备的最短边(http://blog.csdn.net/yangyanfengjiayou/article/details/19082715)来判断是否是平板或者是手机。一般而言,平板的最短边会大于600dp.所以我们可以在values-sw600dp,value-sw720dp,values中添加bool.xml属性,其中values里面的值是false;

 <?xml version="1.0" encoding="UTF-8"?>
 <resources>
    <bool name="isOrientationChanged">true</bool>
 </resources>


这样通过获取isOrientationChanged的值来判断是否是平板或者手机.true代表的是平板,false代表的是手机。ok,这里完成了第一步。接下来完成第二步,如何使手机运行这个app只保持竖屏?如何让平板运行这个app可以进行横竖屏切换。在你的onCreate里面添加如下代码,代码如下:

// 配置文件决定该应用是否可以屏幕切换
boolean isOrientationChange = getResources().getBoolean(R.bool.isOrientationChanged);
    

        //设置里面是否禁止横竖屏,若禁止了,设备也不能进行横竖屏切换了。

          boolean isRotate = (Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) != 0) ? true : false;
if (isRotate) {
if (isOrientationChange) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}else{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}

总之,上面的第一步适用于android 3.0以及以上的设备,因为在android3.0以及以上的时候才引入了sw这个属性。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值