ユーザーがデバイスを回転させたときに向きを横向きに変更したくないAndroidアプリを開発しています。また、ロックされた向きを携帯電話では縦向きモード、タブレットでは横向きモードにします。はいの場合、これはどのように達成できますか?ありがとう。
ユーザーがデバイスを回転させたときに向きを横向きに変更したくないAndroidアプリを開発しています。また、ロックされた向きを携帯電話では縦向きモード、タブレットでは横向きモードにします。はいの場合、これはどのように達成できますか?ありがとう。
回答:
ファイルのアクティビティ要素内で以下のプロパティを定義する必要がありAndroidManifest.xml
ます。それはあなたの向きを縦向きに制限します。
android:screenOrientation = "portrait"
例:
<activity
android:name="com.example.demo_spinner.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
これをアプリ全体に適用する場合は、次のようにアプリケーションタグ内で以下のプロパティを定義します。
<application>
android:screenOrientation="sensorPortrait"
</application>
さらに、以下のEduard Lucaのコメントに従ってscreenOrientation="sensorPortrait"
、180度の回転を有効にする場合にも使用できます。
sensorPortrait
、ユーザーが画面を180度回転できるようにしたい場合:)
にandroid:screenOrientation="portrait"
ディレクティブを追加する必要がありますAndroidManifest.xml
。これは<activity>
タグで行う必要があります。
さらに、Androidデベロッパーガイドには次のように記載されています。
[...]また、アプリケーションで要素を使用して縦向きまたは横向きのいずれかが必要であることを明示的に宣言する必要があります。たとえば、
<uses-feature android:name="android.hardware.screen.portrait" />
。
私はあなたがあなたの問題を完全に解決しない答えを受け入れたのを見ることができます:
android:screenOrientation="portrait"
これにより、スマートフォンとタブレットの両方でアプリが強制的に縦向きになります。
を使用して、アプリをデバイスの「優先」方向に強制することができます
android:screenOrientation="nosensor"
これにより、ほとんどの携帯電話ではアプリが縦向きになり、タブレットでは横向きになります。ランドスケープモード用に設計されたキーパッド付きの電話はたくさんあります。アプリを強制的に縦向きにすると、そのようなデバイスではほとんど使用できなくなる可能性があります。Androidは最近、他のタイプのデバイスにも移行しています。デバイスに優先方向を選択させるのが最善です。
それはそうかもしれません..あなたはそれがプログラムによってタブレットまたは電話であることを識別する必要があります...最初のチェックデバイスは電話またはタブレットです
じゃあ……
if(isTablet)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}else
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
アクティビティタグの下のマニフェストファイルで、画面の向きを縦向きに設定します。
アクティビティタグの下のマニフェストファイルで、画面の向きを縦向きに設定します。
ここに例があります
すべてのアクティビティに入力する必要があります
ポートレート用
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity"
景観用
android:screenOrientation="landscape"
tools:ignore="LockedOrientationActivity"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.thcb.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity2"
android:screenOrientation="landscape"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>