사용자가 기기를 회전 할 때 방향을 가로 모드로 변경하고 싶지 않은 Android 앱을 개발 중입니다. 또한 잠금 방향을 휴대폰에서는 세로 모드로, 태블릿에서는 가로 모드로 설정하고 싶습니다. 가능하다면 어떻게해야합니까? 감사.
사용자가 기기를 회전 할 때 방향을 가로 모드로 변경하고 싶지 않은 Android 앱을 개발 중입니다. 또한 잠금 방향을 휴대폰에서는 세로 모드로, 태블릿에서는 가로 모드로 설정하고 싶습니다. 가능하다면 어떻게해야합니까? 감사.
답변:
파일 의 활동 요소 내에 아래 속성을 정의하기 만하면 AndroidManifest.xml
됩니다. 방향을 세로로 제한합니다.
android : screenOrientation = "세로"
예:
<activity
android:name="com.example.demo_spinner.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
추가로, 아래 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);
}
활동 태그 아래의 Manifest 파일에서 화면 방향을 세로로 설정하십시오.
활동 태그 아래의 Manifest 파일에서 화면 방향을 세로로 설정하십시오.
여기에 예
모든 활동에 참여해야합니다.
초상화 용
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>