본문 바로가기
Android Studio/Android

Android Studio 팝업창 만들기

by ksb0511 2020. 7. 22.

팝업창을 만드는 방법으로 여러가지 방법이 있는데, 이 포스팅에서 쓸 방법은 팝업 액티비티의 뒷 배경을 반투명하게 하여, 팝업창이 띄워지는 것처럼 보이도록 하는 방법이다.

 


1. 먼저, 팝업창을 만들 때 일반 Activity를 만들 듯이 똑같이 팝업 Activity를 만든다. 그 후 Activity를 구성한다라는 생각으로 팝업 xml 파일에 레이아웃을 구성시키면 된다.

 

이 때 팝업 xml 파일 구성시에는 꼭 전체 크기를 match_parent로 하면 안된다. 그렇게 할 경우 일반 화면 전환 식으로 넘어가기 때문에 팝업을 만들 수가 없다.

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="#00FFFFFF">
    
    </androidx.constraintlayout.widget.ConstraintLayout>

 

( ※ 'background=#00FFFFFF'는 안 써도 상관 없음 )

 

 이제 팝업을 띄울 때 뒷 배경은 대부분 어두운 반투명 배경이므로 그 부분을 만들어야 한다.

 

2. values에 styles.xml 파일에서 배경 색상을 지정한다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#84cdc2</color>
    <color name="colorPrimaryDark">#5ea096</color>
    <color name="colorAccent">#fb777a</color>

    <!--팝업배경-->
    <color name="dialogColor">#A6333333</color>
</resources>

 

3. 그 다음으로 이 배경색상을 입힐 수 있는 테마를 만들어야 한다.

마찬가지로 values에 있는 styles.xml 파일에 다음과 같은 코드를 추가한다.

<resources>

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

    </style>
    
<!--팝업창 테마-->
    <style name="DialogTheme" parent="@style/Theme.AppCompat.NoActionBar">
        <item name="android:windowBackground">@color/dialogColor</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@null</item>
    </style>
    
</resources>

 

4. 그럼 팝업창을 만들기 위한 테마까지 완성이 된 상태다. 마지막으로, AndroidManifest.xml 파일에서 테마만 지정해주면 팝업이 완성된다.

<activity android:name=".main.popupActivity"
            android:theme="@style/DialogTheme"/>

 

(이 방법은 액티비티에서 액티비티 이동이므로 팝업창으로 넘어가게 끔 하는 것은 일반적인 액티비티 간 이동 방법 그대로 Intent를 사용하면 된다.)

댓글