안드로이드

[Android] 액티비티를 다이얼로그 효과 주기

IT꿈나무 2021. 8. 30. 18:42
반응형

목적:

 다이얼로그 처럼 보이고, 배경클릭 할 경우, 엑티비티가 종료되도록 구현(종료하면 안될 경우도 있을듯).

 

구현 방법:

 - 엑티비티의 테마를 다이얼로그 테마를 주는 것으로 해결 하였다.

  - 1번이 다이얼로그 테마로 해결 하였다.

<activity android:name=".LinkDialog"
    android:theme="@style/@style/Theme.AppCompat.DayNight.Dialog"/> //Dialog.Alert 주면 이상함
    
    
<style name="Theme.MyDialog" parent="Theme.AppCompat.DayNight.Dialog.Alert">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>


<activity android:name=".LinkDialog"
    android:theme="@style/Theme.MyDialog"/>

 - 2번의 방법도 테마를 사용하지만, 주변 배경 클릭시 닫히는 효과를 줄때 코드를 너무 많이 작성해야 해서 좋은 방법은 아닌걸로 보인다.

    <style name="Transparent" parent="@style/Theme.AppCompat">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimaryDark">@color/transparent</item>
        <item name="android:windowBackground">@color/transparent</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@android:style/Animation</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>
    
        <activity
            android:name=".DialogActivity"
            android:theme="@style/Transparent"/>

 

구현코드:

 

MyActivityForDialog.7z
0.24MB

 

참고자료:

[1]https://tristan91.tistory.com/121

[2]https://gg-i-dont-know.tistory.com/6

반응형