뷰의 모서리를 둥그렇게 만드는 방법 2가지는
1. 둥그런 효과를 주는 xml을 만들어 뷰의 background 속성에 넣는다.
2. CardView를 사용한다.
버튼이랑, 텍스트 뷰의 경우 1번으로도 충분히 위 이미지 같이 모서리가 둥그래진다.
하지만 이미지 뷰의 경우 메인 이미지 때문에 백그라운드 속성이 적용이 안돼 모서리가 직각으로 나온다.
그래서 이미지뷰의 경우 카드뷰를 사용해 둥그런 효과를 준다.
1. 둥그런 효과를 주는 xml을 만들어 뷰의 background 속성에 넣는다. (버튼, 텍스트뷰)
- activity_main.xml
<TextView
android:id="@+id/text"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="TextView"
android:background="@drawable/round"
android:gravity="center"
android:textColor="#FFFFFF"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="160dp"
android:background="@drawable/round"
android:text="Button"
android:textColor="#FFFFFF"
app:layout_constraintBottom_toTopOf="@+id/text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.835" />
- round.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#0f40DB"/>
<corners
android:topLeftRadius="18dp"
android:topRightRadius="18dp"
android:bottomLeftRadius="18dp"
android:bottomRightRadius="18dp"/>
</shape>
Radius 속성을 통해 원하는 모서리만 둥그렇게 만들 수 있다.
2. CardView를 사용한다.
implementation 'com.android.support:design:29.0.0'
카드뷰 사용을 위해 Gradle에 디자인 서포트 라이브러리를 추가합니다.
- activity_main.xml
<androidx.cardview.widget.CardView
android:id="@+id/cardBackgroundView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="156dp"
android:layout_marginTop="44dp"
app:cardCornerRadius="25dp"
app:cardElevation="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/text">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/round"
android:src="@drawable/ic_launcher_background" />
</androidx.cardview.widget.CardView>
이미지 뷰를 다음과 같이 카드뷰 안에 배치를 시킵니다.
카드뷰의 app:cardCornerRadius 속성으로 둥그런 정도를 나타냅니다.
app:cardElevation="0dp" 값을 통해 붕 뜨지 않는 이미지를 만든다고 하내요..
참고
'Android > 개념 및 예제' 카테고리의 다른 글
ConstraintLayout 이해, 정복하기 (0) | 2020.09.06 |
---|---|
Android Notification Example (+Channel) (0) | 2020.08.13 |
[RecyclerView]Header와 Footer를 가진 리사이클러뷰 (0) | 2020.08.13 |
[안드로이드/Android] 플레이스토어 앱 강제로 업데이트하기 (0) | 2020.07.23 |
[안드로이드/Android] 기기 네트워크 연결 상태 확인 (0) | 2020.07.18 |