728x90
안녕하세요 !
오늘은 원형 다이얼로그 라이브러리를 사용하여 간단하게 원형 다이얼로그를 구현해보도록 하겠습니다 !
참조 문서
https://github.com/HassanUsman/CircularDialogs
먼저 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
실행화면 입니다.
오늘 준비한 내용은 여기까지입니다.
궁금한 점은 언제든 댓글로 남겨주세요 !
감사합니다 !
'안드로이드 자바' 카테고리의 다른 글
[Android][Java] PlusingView 만들기 (0) | 2023.06.02 |
---|---|
[Android][Java] ConstraintSet클래스를 사용해 Chain Weight 유동적으로 변경하기 (0) | 2023.05.28 |
[Android][Java] 이미지 절대경로 가져와서 Intent로 넘기기 (0) | 2023.05.23 |
[Android][JAVA] 반투명 로딩다이얼로그 구현하기 (0) | 2023.05.21 |
[Android][JAVA]액티비티 Zoom In, Out 예제 (0) | 2023.05.20 |