상세 컨텐츠

본문 제목

[Android] 단말 방향 설정

Android 개발

by mobile 2012. 8. 16. 23:59

본문

반응형

▶ 단말 방향 설정 (configChanges)

configChanges 속성의 값이 'orientation'으로 설정되면 단말의 방향이 바뀔때 마다 액티비티에서 인식 할 수 있으며, 단말의 방향이 바뀌는 시점에 configurationChanged() 메소드가 자동으로 호출됩니다. 


방향을 세로 또는 가로로 고정시키고 싶은 경우에는 매니페스트 파일에 액티비티를 추가할 때 액티비티의 방향을 지정하면 됩니다. 예를 들어 사진과 같은 이미지를 보는 뷰어를 만들 때 액티비티에 사진이 잘 보이도록 가로로 만들고 싶다면 다음과 같이 매니페스트를 설정할 수 있습니다.

[code]

<activity

android:name=".SampleOrientationActivity"

     adnroid:theme="@android:style/Theme.NoTitleBar"

     android:screenOrientation="landscape"

     android:configChanges="orientation" 

     >

</activity>


▷ SampleOrientationActivity.java

import android.app.Activity;

import android.content.res.Configuration;

import android.os.Bundle;

import android.view.Menu;

import android.view.Window;

import android.view.WindowManager;

import android.widget.Toast;


public class SampleOrientationActivity extends Activity {


@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);


// 상태바와 타이틀 설정

Window win = getWindow();

// 전체 화면 보기

win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

// 타이틀 삭제

requestWindowFeature(Window.FEATURE_NO_TITLE);

requestWindowFeature(Window.FEATURE_PROGRESS);

setContentView(R.layout.main);

}


@Override

public void onConfigurationChanged(Configuration newConfig) {

// TODO Auto-generated method stub

super.onConfigurationChanged(newConfig);

if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {

Toast.makeText(getApplicationContext(), "Orientation : ORIENTATION_LANDSCAPE", 1000).show();

} else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {

Toast.makeText(getApplicationContext(), "Orientation : ORIENTATION_PORTRAIT", 1000).show();

}

}

}


▷ main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >


    <TextView 

        android:id="@+id/text01"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:background="#ff0000cc"

        android:text="방향 바꾸기"

        android:textSize="20dp"

        android:focusable="true"

        />

<EditText 

   android:id="@+id/edit01"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:text="텍스트를 입력하세요"

   android:textSize="20dp"

   />

<Button 

   android:id="@+id/btnShow"

   android:layout_width="160dp"

   android:layout_height="wrap_content"

   android:text="보여주기"

   android:textStyle="bold"

   />

</LinearLayout>


▷ AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.sampleorientation"

    android:versionCode="1"

    android:versionName="1.0" >


    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="15" />


    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".SampleOrientationActivity"

            android:label="@string/title_activity_sample_orientation"

            android:configChanges="orientation" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>


</manifest>


반응형

'Android 개발' 카테고리의 다른 글

[Android]WebView  (0) 2012.08.18
[Android]Tab widget  (0) 2012.08.18
[Android] 포커스  (0) 2012.08.16
[Android]event - 02  (0) 2012.08.15
[Android]이벤트 - 01  (0) 2012.08.15

관련글 더보기

댓글 영역