반응형
Android Button 모서리를 둥글게 만드는 방법에 대해 알아봅시다.
다이얼로그 / 버튼 등 각진 모서리는 올드한 이미지를 줍니다.
View 모서리를 둥글게 만들어서 이쁜 layout 을 만들어 봅시다.
본 내용에서는 다이얼로그 화면으로 설명합니다.
Android Button 모서리 둥글게 만들기 위한 xml 작성
drawable 영역에 둥근 속성을 추가. (파일명은 share_round_popup.xml 로 설정)
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/shape_popup">
<stroke android:width="10dp"
android:color="@color/grey_200"/>
<padding android:left="5dp"
android:top="5dp"
android:right="5dp"
android:bottom="5dp"
/>
<corners android:radius="15dp" />
<solid android:color="@color/grey_200" />
</shape>
중요한 부분은 'android:radius' 부분이며 radius의 값이 클수록 더 둥글게 된다.
Android Button 모서리 둥글게 만들기 위한 다이얼로그 작성
<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:background="@drawable/share_round_popup"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#333333"
app:layout_constraintBottom_toTopOf="@+id/btn_no" />
<TextView
android:id="@+id/btn_yes"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="네"
android:gravity="center"
android:textSize="16dp"
android:paddingVertical="16dp"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/btn_no" />
<TextView
android:id="@+id/btn_no"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingVertical="16dp"
android:text="아니요"
android:textColor="@color/black"
android:textSize="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btn_yes"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/popupText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="64dp"
android:layout_marginBottom="64dp"
android:textColor="@color/white"
android:text="메인 텍스트"
app:layout_constraintBottom_toTopOf="@+id/view"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
ConstraintLayout 영역에 background 속성을 전에 만든 share_roound_popup.xml 로 설정하면 둥근 다이얼 로그를 확인할수 있습니다.
Android Button 적용 전/후 비교
참고사항
다이얼로그에서 모서리 둥글게 할 경우에 둥글게된 부분이 흰색 으로 흔적이 남는 경우가 있다.
이 경우 다이얼로그를 호출하는 부분에서 아래 내용을 추가해주면 된다.
octDialog.setCanceledOnTouchOutside(false); //다이알로그 밖에 터치했을 때 다이알로그가 꺼짐.(true) 안꺼짐 (false)
octDialog.setCancelable(true); //다이알로그 취소 가능. ( back버튼 )
octDialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
//아래 2개를 해야 모서리 라운딩 백그라운드 컬러가 없어짐. (중요)
octDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
octDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
octDialog.show();
반응형
'IT > Android' 카테고리의 다른 글
Android 앱에 Font (글꼴, 폰트) 적용하기 (0) | 2022.08.05 |
---|---|
Android Studio 코드 자동 정렬하기 (0) | 2022.08.02 |
Android Firebase Crashlytics 적용하기 (0) | 2022.07.29 |
Android 움직이는 이미지 엑티비티에 넣기(feat. Lottie) (0) | 2022.07.28 |
Android Studio "Loading Devices" 단말 연결 오류 (0) | 2022.07.08 |
댓글