프로그래밍(~2017)/안드로이드
[android 안드로이드] Activity 를 dialog 처럼 사용하기
단세포소년
2012. 1. 5. 07:49
반응형
액티비티를 다이얼로그 형식으로 사용했으면 좋겠다라고 생각할 경우가 있습니다.
방법은 간단합니다.
1. themes.xml 에 다이얼로그 style을 정의해 둔다.
2. manifest에서 다이얼로그처럼 사용할 액티비티 속성으로 테마 스타일을 추가한다.
3. 액티비티를 실행시킨다.
우선 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));
출처 : http://croute.me/289
반응형