加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 23:02:12 所属栏目:百科 来源:网络整理
导读:开发一个App,如果在手机上运行,我希望它能够竖屏显示,如果在一个平板上运行,我希望它可以横竖切换。那么如果判断设备是一个平板还是一个手机呢?可以根据获取设备的最短边(http://blog.csdn.net/yangyanfengjiayou/article/details/19082715)来判断是否

开发一个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这个属性。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读