Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – OrientationEventListener(Tablet vs Mobile)90度差异大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用OrientationEventListener来检测方向,但我有一个问题,即平板电脑是横向的,认情况下手机是纵向的.这意味着OrientationEventListener在平板电脑上为肖像返回值90,但在移动设备上为肖像返回0.

我正在使用的活动有相机,所以我无法在方向之间切换,因此我使用Orientation的值根据需要在屏幕上重新定位几个元素.

是否可以检测设备是否是平板电脑,以便我可以相应地调整值.即我如何计算出isTablet的价值?

if(isTablet)
            {
                orientation += -90;
                if(orientation < 0) //check if we have gone too far BACk,keep the result between 0-360
                {
                    orientation += 360;
                }   
            }

解决方法

由于您已经提到无法在方向之间进行更改,因此您必须使用设备的属性来确定它是否是平板电脑.

看看this reference.

您可以使用android.os.build.DEVICE,android.os.build.MODEL和android.os.build.PRODUCT来获取设备的身份,并且根据这些知识,您可以使用this来查找其值并确定什么是设备类型.

但是,使用此方法,每次发布新平板电脑时都必须更新软件. (我已经使用this问题作为答案的这一部分的参).

替代是我在here找到的,引用答案:

public Boolean isTablet(Context context) {
    Boolean xlarge = ((context.getresources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == 4);
    Boolean large = ((context.getresources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE);
    return (xlarge || largE);
}

希望这可以帮助!

大佬总结

以上是大佬教程为你收集整理的android – OrientationEventListener(Tablet vs Mobile)90度差异全部内容,希望文章能够帮你解决android – OrientationEventListener(Tablet vs Mobile)90度差异所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。