0

私はかなりの量の Java を知っていますが、Android SDK でプログラミングするのはこれが初めてです。電話の回転をリアルタイムで取得し、画面に表示する必要があります。getOrientation はプロセッサを集中的に使用し、リアルタイムで動作しない可能性があると聞いたので、どのセンサー メソッドを使用するかを考えていました。第二に、このプログラムをどのクラスに配置するのか疑問に思っていました.Androidクラスの階層をまだよく理解していません。第三に、画面上の数字をリアルタイムで変更するにはどうすればよいですか? 助けてくれてありがとう!

4

1 に答える 1

1

getOrientation はプロセッサを集中的に使用し、リアルタイムで動作しない可能性があると聞いたので、どのセンサー メソッドを使用するかを考えていました。

OrientationEventListenerオブジェクトを確認してください。

第二に、このプログラムをどのクラスに配置するのか疑問に思っていました.Androidクラスの階層をまだよく理解していません。

開始するには、このすべてのコードをActivity. 従来の Java プログラムとは異なり、main()エントリ ポイント メソッドはなく、アプリケーション コンポーネント クラスのコンストラクタを使用してそれらをインスタンス化することはありません。onCreate()およびのようなライフサイクル コールバック メソッドonDestroy()は、インスタンス情報の初期化とティアダウンを行う場所です。 このガイドは、単一のActivity.

第三に、画面上の数字をリアルタイムで変更するにはどうすればよいですか? 助けてくれてありがとう!

OrientationEventListenerには、変更ごとにコールバック メソッドが含まれています。このコールバックを使用して、UI のビューを更新するだけです。

すべてをまとめた簡単な例を次に示します。

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();
    }
}
于 2012-07-12T18:59:44.547 に答える