프로그래밍(~2017)/안드로이드

[android 안드로이드] Activity 를 dialog 처럼 사용하기

단세포소년 2012. 1. 5. 07:49
반응형


액티비티를 다이얼로그 형식으로 사용했으면 좋겠다라고 생각할 경우가 있습니다.
방법은 간단합니다.

1. themes.xml 에 다이얼로그 style을 정의해 둔다.
2. manifest에서 다이얼로그처럼 사용할 액티비티 속성으로 테마 스타일을 추가한다.
3. 액티비티를 실행시킨다.


1. themes.xml파일에 다이얼로그 style 정의

우선 res/values 폴더에 themes.xml 을 만듭니다.
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Dialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
</style>
</resources>

여기서 설정된 것들은, 기본으로 깔리는 까만색 bakcground를 사용하지 않는것 타이틀바를 없애는것 등입니다.
이 스타일의 이름은 Dialog 로 정의되어 있으므로 매니페스트파일에서 사용시에는
android:theme="@android:style/Theme.Dialog" 로 사용할 수 있게 됩니다.




2. manifest에서 다이얼로그처럼 사용할 액티비티 속성으로 테마 스타일을 추가한다.

이제 매니페스트에서 코드를 추가해줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
package="me.croute.dialogactivity"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name" >
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog" />
</application>
<uses-sdk android:minSdkVersion="7" />
</manifest>

기본 액티비티로 MainActivity 가 존재하고, 다이얼로그로 사용할 액티비토로 DialogActivity를 추가했습니다.
다이얼로그 액티비티의 테마로는 위에서 만든 다이얼로그 스타일을 사용해줍니다.

이렇게 설정해 두면
어디서든 아래의 코드를 사용해서 다이얼로그로 보이는 액티비티를 부를 수 있게 됩니다.
startActivity(new Intent(this, DialogActivity.class));


 
 
반응형