首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓测角

安卓测角
EN

Stack Overflow用户
提问于 2012-07-13 02:36:07
回答 1查看 1.3K关注 0票数 0

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-13 02:59:45

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

您需要查看一下OrientationEventListener对象。

其次,我想知道我应该把这个程序放在哪个类中,我还不太了解android类的层次结构。

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

第三,如何让屏幕上的数字实时变化?谢谢你的帮助!

对于每个更改,OrientationEventListener都包含一个回调方法,只需使用此回调来更新UI中的视图。

下面是一个简单的示例,将所有这些整合在一起:

代码语言:javascript
复制
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();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11458391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档