0

画面サイズによってAndroidマニフェストを変える方法はありますか?デバイスがタブレット(つまり、xlarge画面サイズ)の場合、android:configChangesに「orientation」を含めないようにします

さらに、使用するデバイスによってandroid:screenOrientationを変えたいと思います。何かアドバイス?

4

2 に答える 2

1

AndroidManifest.xmlでこれほど複雑なことを行う方法はわかりませんが、Activity.setRequestedOrientation()メソッドを介してプログラムで行うことができます。これをユーティリティクラスでラップし、それに応じて環境にクエリを実行するのは簡単です。ただし、警告の一言です。このメソッドを呼び出すと実際に向きが変わる場合は、アクティビティonCreate()が2回目に呼び出されます。次のことが真であると評価された場合に、このルートを選択した場合に役立つ可能性のあるもう1つのこと:

if((cfg.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {...}

次に、タブレットデバイスを使用しているか、少なくともレイアウトがlayout-large(ある場合)からロードされています。すべてをまとめると、次のようにすると、タブレットが横向きモードにロックされ、電話が縦向きモードにロックされます。

      if ((cfg.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {
         return true;
      } else if ((cfg.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
         return false;
      } else if ((cfg.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
         return false;
      } else {
         // Assume that all other ratings are tablets or possibly even larger devices; there is an
         // extra large spec however it is only available OS versions 3.x and above so there is no clean way to query for this state.
         return true;
      }
于 2012-08-21T16:47:38.607 に答える
0

これを見てください.........supports-screensandroid:resizeable = ["true" | "false"] android:smallScreens = ["true" | "false"] android:normalScreens = ["true" | "false"] android:largeScreens = ["true" | "false"] android:xlargeScreens = ["true" | "false"] android:anyDensity = ["true" | "false"] android:requiresSmallestWidthDp = "integer" android:compatibleWidthLimitDp = "integer" android:largestWidthLimitDp ="integer...............画面を処理します

于 2012-09-01T10:37:08.940 に答える