您可能会认为会有一个直接的解决方案。 Android 文档指出:
Android 2.2(API 级别 8)中已弃用方向传感器。
我们建议不要使用来自方向传感器的原始数据
您将 getRotationMatrix() 方法与
getOrientation() 方法来计算方向值。
然而,他们没有提供如何实施的解决方案getOrientation()
and getRotationMatrix()
。我花了几个小时阅读这里关于使用这些方法的开发人员的帖子,但他们都有部分粘贴的代码或一些奇怪的实现。谷歌搜索没有提供教程。有人可以使用这两种方法粘贴一个简单的解决方案来生成方向吗?
这是实现getOrientation()
:
public int getscrOrientation()
{
Display getOrient = getWindowManager().getDefaultDisplay();
int orientation = getOrient.getOrientation();
// Sometimes you may get undefined orientation Value is 0
// simple logic solves the problem compare the screen
// X,Y Co-ordinates and determine the Orientation in such cases
if(orientation==Configuration.ORIENTATION_UNDEFINED){
Configuration config = getResources().getConfiguration();
orientation = config.orientation;
if(orientation==Configuration.ORIENTATION_UNDEFINED){
//if height and widht of screen are equal then
// it is square orientation
if(getOrient.getWidth()==getOrient.getHeight()){
orientation = Configuration.ORIENTATION_SQUARE;
}else{ //if widht is less than height than it is portrait
if(getOrient.getWidth() < getOrient.getHeight()){
orientation = Configuration.ORIENTATION_PORTRAIT;
}else{ // if it is not any of the above it will definitely be landscape
orientation = Configuration.ORIENTATION_LANDSCAPE;
}
}
}
}
return orientation; // return value 1 is portrait and 2 is Landscape Mode
}
您还可以参考这个示例,它代表了这两种方法的使用:
getOrientation and getRotationMatrix
http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)