android测量角度

时间:2012-07-12 18:36:07

标签: android android-sensors

我知道很多java,但这是我第一次用android sdk编程。我需要实时获得手机的旋转并将其显示在屏幕上。我想知道使用什么传感器方法,因为我听说getOrientation是处理器密集型的,可能无法实时工作。其次,我想知道哪个类我对这个程序是正确的,我还不太了解android类层次结构。第三,如何实时更改屏幕上的数字? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

  

我想知道使用什么传感器方法,因为我听说getOrientation是处理器密集型的,可能无法实时工作。

您需要查看OrientationEventListener对象。

  

其次,我想知道哪个类我对这个程序是正确的,我还不太了解android类层次结构。

为了帮助您入门,您可以将所有这些代码构建到Activity中。与传统的Java程序不同,没有main()入口点方法,您不会使用应用程序组件类的构造函数来实例化它们。生命周期回调方法(如onCreate()onDestroy())是您希望初始化和拆除实例信息的地方。 This guide可以帮助您构建应用程序以使用单个Activity

  

第三,如何实时更改屏幕上的数字?谢谢你的帮助!

OrientationEventListener包含每次更改的回调方法,只需使用此回调即可更新用户界面中的视图。

这是一个简单的例子:

public class OrientationActivity extends Activity {
    private OrientationEventListener mListener;
    private TextView mTextView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);
        setContentView(mTextView);

        mListener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_UI) {
            @Override
            public void onOrientationChanged(int orientation) {
              mTextView.setText(String.valueOf(orientation);
            }
        };
    }

    @Override
    public void onResume() {
        super.onResume();
        mListener.enable();
    }

    @Override
    public void onPause() {
        super.onPause();
        mListener.disable();
    }
}