관리 메뉴

나만을 위한 블로그

[Android] 커스텀 다이얼로그 테두리 둥글게 만들기 본문

Android

[Android] 커스텀 다이얼로그 테두리 둥글게 만들기

참깨빵위에참깨빵_ 2021. 6. 9. 00:58
728x90
반응형

커스텀 다이얼로그를 만들면 기본 형태는 직사각형이다. 이게 싫어서 둥글게 만들고 싶다면 어떻게 해야 할까? 방법은 생각보다 간단하다.

먼저 드로어블 xml을 만든다. 이름은 적당히 짓고 shape로 만든 다음, 아래 코드를 복붙한다.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/colorMainWhite" />
    <corners android:radius="20dp" />
</shape>

corners 부분에 그냥 radius를 넣으면 모든 모서리가 둥글어진다. 일일이 topLeftRadius 어쩌고 속성들을 쓰지 않아도 된다. 만약 세부 조절이 필요하다면 이 속성을 사용해서 모서리의 둥글기를 조절해준다.

그리고 이렇게 만든 드로어블 xml을 커스텀 다이얼로그 xml의 부모 레이아웃에 background 속성값으로 지정해준다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/edit_dialog_radius" // ← background로 적어준다
    android:backgroundTint="@color/colorMainWhite"
    android:orientation="vertical"
    xmlns:app="http://schemas.android.com/apk/res-auto">

그리고 마지막으로 커스텀 다이얼로그를 띄우는 메서드 안에서 아래 코드를 적어준다.

 public void showDialog()
    {
        final Dialog dialog = new Dialog(context);
        // 아래 코드를 꼭 적어준다
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        .
        .
        .

저 코드를 적지 않으면 둥근 테두리 드로어블을 적용해도 사각형으로 나온다. 그 경우를 위한 코드니 꼭 적어준다.

위의 드로어블 xml에서 corners의 속성을 잘 조절해주면 버튼들의 왼쪽 아래, 오른쪽 아래 모서리만 둥글게 할 수도 있다.

잘 조합하면 아래와 같은 디자인의 커스텀 다이얼로그를 만들 수도 있다.

좀 더 잘 수정해 보면 더 멋진 디자인의 커스텀 다이얼로그를 만들 수 있을 것이다.

반응형
Comments