티스토리 뷰

반응형

Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.

Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.

 

아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.

Force "portrait" orientation mode

세로 모드 강제 적용

 문제 내용 

I'm trying to force the "portrait" mode for my application because my application is absolutely not designed for the "landscape" mode.

제 애플리케이션은 "가로" 모드를 전혀 고려하지 않고 만들어져 있기 때문에, 애플리케이션을 "세로" 모드로 강제하려고 합니다.

 

After reading some forums, I added these lines in my manifest file:

포럼을 몇 개 읽은 후에, AndroidManifest.xml 파일에 다음 라인을 추가했습니다.
<application 
  android:debuggable="true"
  android:icon="@drawable/icon" 
  android:label="@string/app_name"
  android:screenOrientation="portrait">

 

But it doesn't work on my device (HTC Desire). It switches from "portrait" lo "landscape", ignoring the lines from the manifest file.

하지만 이 방법은 제 기기(HTC Desire)에서 작동하지 않습니다. "세로"에서 "가로"로 전환되며, AndroidManifest.xml 파일의 라인을 무시합니다.

 

After more forums reading, I tried to add this in my manifest file:

더 많은 포럼을 읽은 후에, 이 라인을 AndroidManifest.xml 파일에 추가해 보았습니다.
<application 
  android:debuggable="true"
  android:icon="@drawable/icon" 
  android:label="@string/app_name"
  android:configChanges="orientation"       
  android:screenOrientation="portrait">

 

and this function in my activity class:

그리고 이 함수를 액티비티 클래스에 추가해 보았습니다.
public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

 

But again, no luck.

하지만 여전히 작동하지 않습니다.

 

 

 

 높은 점수를 받은 Solution 

Don't apply the orientation to the application element, instead you should apply the attribute to the activity element, and you must also set configChanges as noted below.

애플리케이션 엘리먼트에 화면 회전을 적용하지 마세요. 대신 activity 엘리먼트에 속성을 적용해야 하며, 아래와 같이 configChanges를 설정해야 합니다.

 

Example:

예:
<activity
   android:screenOrientation="portrait"
   android:configChanges="orientation|keyboardHidden">
</activity>

 

This is applied in the manifest file AndroidManifest.xml.

AndroidManifest.xml 파일에서 설정하면 됩니다.

 

 

 

 가장 최근 달린 Solution 

Set force Portrait or Landscape mode, Add lines respectively.

강제로 "세로" 또는 "가로" 모드를 설정하려면, 각각 다음 라인을 추가하세요.

 

Import below line:

아래 라인을 임포트하세요.
import android.content.pm.ActivityInfo;

 

Add Below line just above setContentView(R.layout.activity_main);

아래 라인을 setContentView(R.layout.activity_main); 위에 추가하세요.

 

For Portrait:

가로의 경우:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//Set Portrait

 

For Landscap:

세로의 경우:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//Set Landscape

 

This will definitely work.

이 방법은 확실히 작동할 것입니다.

 

 

 

출처 : https://stackoverflow.com/questions/4885620/force-portrait-orientation-mode

반응형
댓글
공지사항
최근에 올라온 글