본문 바로가기
안드로이드 자바

[Android][Java] 원형 다이얼로그 구현하기

by teamnova 2023. 5. 27.

안녕하세요 !

오늘은 원형 다이얼로그 라이브러리를 사용하여 간단하게 원형 다이얼로그를 구현해보도록 하겠습니다 !

 

참조 문서

https://github.com/HassanUsman/CircularDialogs

 

GitHub - HassanUsman/CircularDialogs: Android dialog library to give user feedback about the common operations like Success, War

Android dialog library to give user feedback about the common operations like Success, Warning and Errors. - GitHub - HassanUsman/CircularDialogs: Android dialog library to give user feedback about...

github.com

 

먼저 gradle에 라이브러리를 등록해줍니다.

 

build.gradle(Module:프로젝트명:app)
dependencies 괄호 안에 아래 코드를 넣어주세요.

implementation 'com.github.hassanusman:CircularDialogs:1.2'

 

다음으로 xml 파일입니다.

activity_dialog_circle.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:text="[다이얼로그 타입]"
        android:textSize="25sp"/>

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal"
        android:id="@+id/type">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="Success"
            android:id="@+id/success"/>

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Warning"
            android:id="@+id/warning"/>

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Error"
            android:id="@+id/error"/>
    </RadioGroup>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="다이얼로그"
        android:id="@+id/show_dialog"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"/>
</LinearLayout>

다이얼로그 타입을 정할 수 있는 라디오 그룹/버튼과 다이얼로그를 호출할 수 있는 버튼이 있는 레이아웃입니다.

 

다음으로 자바 파일입니다.

 

 사용하는 속성은 다음과 같습니다.

  message

   - 메시지 

  type

   - 다이얼로그 타입 ( SUCCESS, WARNING, ERROR )

  size

   - 다이얼로그 크기 ( LARGE )

  setAnimation

   - 다이얼로그 나타나는 방향과 사라지는 방향

  setDuration

   - 다이얼로그 지속 시간 ( 1000: 1초 )

  setTextSize

   - 텍스트 크기 ( LARGE_TEXT_SIZE, NORMAL_TEXT_SIZE )

 

 

CircelDialogActivity.java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioGroup;

import androidx.appcompat.app.AppCompatActivity;

import com.example.circulardialog.CDialog;
import com.example.circulardialog.extras.CDConstants;

public class CircleDialogActivity extends AppCompatActivity {

    int type = CDConstants.SUCCESS;

    String message = "Success";

    int size = CDConstants.LARGE;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog_cricle);

        RadioGroup typeRb = findViewById(R.id.type);
        typeRb.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int checkId) {
                switch(checkId){
                    case R.id.success:
                        type = CDConstants.SUCCESS;
                        message = "Success";

                        break;
                    case R.id.warning:
                        type = CDConstants.WARNING;
                        message = "Warning";
                        break;
                    case R.id.error:
                        type = CDConstants.ERROR;
                        message = "Error";
                        break;
                }
            }
        });

        Button showDialogBtn = findViewById(R.id.show_dialog);
        showDialogBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showCircularDialog(type, size, message);
            }
        });
    }


    /**
     * 다이얼로그 보여주기
     * @param type 타입( Success, Warning, Error )
     * @param size ( Large
     * @param message 메시지
     */
    public void showCircularDialog(int type, int size, String message){

        new CDialog(this).createAlert(message,
                        type,
                        size)
                .setAnimation(CDConstants.SCALE_FROM_BOTTOM_TO_TOP)
                .setDuration(2000)
                .setTextSize(CDConstants.LARGE_TEXT_SIZE)
                .show();
    }
} //CircelDialogActivity.java

 

실행화면 입니다.

 

 

 

오늘 준비한 내용은 여기까지입니다.

궁금한 점은 언제든 댓글로 남겨주세요 !

감사합니다 !