検索

ホームページ  >  に質問  >  本文

android - 安卓怎么固定屏幕两个方向旋转?

我现在做的应用屏幕左侧旋转的时候 程序有问题,会崩溃,所以想只允许用户可以向左侧和上方两个方向上旋转屏幕,想问一下大家有知道怎么实现吗?网上查到的资料都是怎么去固定一个方向的,没有找到这方面资料,希望了解的朋友告知一声,谢谢!

怪我咯怪我咯2803日前680

全員に返信(2)返信します

  • PHPz

    PHPz2017-04-17 17:22:37

    次の点を知っておく必要があります

    1. 設定

    <activity> ノードの android:screenOrientation 属性でこのタスクを完了できます。サンプル コードは次のとおりです。 リーリー

    2. 画面回転効果を強制的にオンにします

    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);

    3. モニター画面の回転

    ① 現在のアクティビティの onSaveInstanceState(Bundle outState) を呼び出して、アプリケーションにデータを保存します。このメソッドはオーバーライドできます。

    ②次に onDestroy() を呼び出して現在のアクティビティを破棄します

    ③onCreate() または onRestoreInstanceState() メソッドを呼び出してアクティビティを再作成します (つまり、プログラムは onCreate のコードを再実行します)

    さらに、onSaveInstanceState(Bundle outState) の使用方法について説明する必要があります。このメソッドは、画面が回転するときに呼び出されます。ここでの Bundle パラメーターは、画面が回転するまでの時間をカプセル化します。データを保存したい場合は、onDestroy() を呼び出して現在のアクティビティを破棄し、最後に onCreate(Bundle SavedInstanceState) を再度呼び出します。このとき、onCreate でアクティビティを再作成すると、outState が SavedInstanceState に割り当てられます。以前に保存したデータは、再作成されたアクティビティの初期化に使用されます。これは、横画面か縦画面かに関係なく、アプリケーションの実行プロセス全体でデータの変更が一貫している必要があるため、非常に重要です。画面が変わったからといって変更することはできず、最初からやり直しになります

    また、onSaveInstanceState(Bundle outState) メソッドは画面回転時に必ずトリガーされるため、このメソッドを完全に画面回転のモニターとして使用できます

    これが例です:

    *Android では、ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE および ActivityInfo.SCREEN_ORIENTATION_PORTRAIT は完全に垂直または水平の場合のみ返せると規定されているため、水平画面か垂直画面かを判断するのは簡単ではないことに注意してください。 、そしてこれは実際にはほとんど不可能です


    その方法は次のとおりです:

    最初: 許可ステートメント:

    <uses-permission Android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>

    2 番目: アクティビティによってキャプチャされるイベント タイプを宣言します。

    リーリー

    ここで Android:configChanges 属性を宣言する必要があります。この属性は、プログラムでキャプチャできるイベント タイプを | で区切って指定します。

    ここに方向性がない場合、プログラムで画面変更イベントをキャプチャできません。

    3 番目: Activity の onConfigurationChanged メソッドを書き換えます

    リーリー

    どうしてもできない場合は、サイトで私に連絡してください。確認するお手伝いをします。一緒に進歩していきます。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 17:22:37

    私の質問には直接答えてもらえませんでしたが、今日はあなたの言葉を参考にさせていただきました。ありがとうございました。

    返事
    0
  • キャンセル返事