我正在使用Android处理器,我的应用程序几乎已经完成。但是,Android版处理功能无法适应我想要实现的手机方向。它读取加速度计值,我已经能够通过这个简单的算法粗略地确定方向:
if (y > 7)
{
o = UPRIGHT;
}
else if (y < -7)
{
o = UPSIDEDOWN;
}
else if (x > 7)
{
o = TURNLEFT;
}
else
{
o = TURNRIGHT;
}
它没有完美无缺,所以我想知道是否有更好的解决方案。 有没有办法针对当前手机UI方向推荐Android?是否有比7更稳定的值(我选择了哪种方式)?
答案 0 :(得分:2)
通过监视方向的以下配置更改,例如,基于AndroidManifest.xml
,假设该活动被调用myActivity
,那么以下就足够了:
<activity android:name=".myActivity"
android:configChanges="orientation"
android:label="MyActivity" />
从myActivity
类开始,用以下方法处理:
@Override
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
switch(newConfig.orientation){
case Configuration.ORIENTATION_UNDEFINED:
Log.v(TAG, "[onConfigurationChanged] - Undefined");
break;
case Configuration.ORIENTATION_SQUARE:
Log.v(TAG, "[onConfigurationChanged] - Square");
break;
case Configuration.ORIENTATION_PORTRAIT:
Log.v(TAG, "[onConfigurationChanged] - Portrait");
break;
case Configuration.ORIENTATION_LANDSCAPE:
Log.v(TAG, "[onConfigurationChanged] - Landscape");
break;
}
}