자바-안드로이드

액티비티(Activity)를 다이얼로그처럼 팝업창으로 띄우기

songyooho 2022. 11. 22. 17:22

세 문장 요약
1. 액티비티 생성후 AndroidManifest파일에 들어가 해당 액티비티 속성값에 android:theme="@android:style/Theme.Dialog" 추가.

2. 액티비티에서 extends를 AppCompatActivity에서 Activity로 변경.

3. 액티비티내 OnCreate()에서 setContentView()위에 타이틀바 없애는 코드 삽입.( requestWindowFeature(Window.FEATURE_NO_TITLE); )

[+@ 배경 그림자 지우기: 해당 팝업창을 커스텀하는 경우 radius가 있으면 배경그림자 가 보이는데 이부분은 onCreate()내에 getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 를 추가하면 된다.]



1. 팝업창으로 띄울 액티비티를 DialogActivity라는 이름으로 생성한 뒤 AndroidManifest파일에 들어가 해당 액티비티의 테마 속성값을 추가한다.



2. DialogActivity.java내의 Oncreate()부분에서 extends를 Activity로 바꾸고 타이틀을 없애는 코드를 추가한다.


기본적으로 이부분만 하면 완성이 된다.

테스트를 위하여 MainActivity에서 다이얼로그 창을 띄울 코드를 추가하여 확인해보겠다.
MainActivity에서 버튼을 추가하고 해당 버튼을 클릭하면 DialogActivity가 실행되도록 만들었다.

이제 실행한 화면을 보도록 하겠다.

버튼을 클릭하여 다이얼로그창이 뜬 모습이다. 여기서 다이얼로그창의 외곽 모서리 부분이 둥글게 커스텀을 해놨는데 둥근 모서리 바깥부분에 필요없는 부분이 있는게 보인다. 이부분이 배경 그림자에 해당하는데 이부분은 DialogActivity에서 onCreate()안에

getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

를 추가하면 투명하게 바뀌어 사라진다.

배경 그림자가 사라진 모습.

끝!