Как сделать раунд CardView

Я использую Android Studio и хочу получить в XML изображение в CardView, чтобы сделать его круглым. На моем смартфоне все работает нормально, но на некоторых телефонах это не работает. Вот мой код:

<androidx.cardview.widget.CardView
     android:id = "@+id/card01"
     android:layout_width = "74dp"
     android:layout_height = "74dp"
     android:layout_marginStart = "3dp"
     android:layout_marginTop = "3dp"
     app:cardCornerRadius = "74dp"
     android:shape = "ring"
     android:layout_centerHorizontal = "true"
     android:layout_centerVertical = "true"
     android:innerRadius = "0dp"
     android:thicknessRatio = "2.0"
     android:useLevel = "false"
     app:cardElevation = "0dp">

          <ImageView
               android:id = "@+id/profile_image1"
               android:layout_width = "match_parent"
               android:layout_height = "match_parent"
               app:srcCompat = "@mipmap/ic_person_foreground" />

 </androidx.cardview.widget.CardView>

На моем смартфоне ImageView идеально круглый, но на других телефонах он выглядит так:

Кто-нибудь знает, как это исправить? Большое спасибо!

1
0
72
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

добавить эту строку в представление изображения

app:layout_constraintCircleRadius = "suggestedvalue"
Ответ принят как подходящий

Используйте cardCornerRadius, который составляет ровно половину ширины/высоты CardView

В вашем случае: ширина/высота CardView составляет 74 dp, поэтому cardCornerRadius будет 37 dp.

<androidx.cardview.widget.CardView
     android:id = "@+id/card01"
     android:layout_width = "74dp"
     android:layout_height = "74dp"
     android:layout_marginStart = "3dp"
     android:layout_marginTop = "3dp"
     app:cardCornerRadius = "37dp"
     android:shape = "ring"
     android:layout_centerHorizontal = "true"
     android:layout_centerVertical = "true"
     android:innerRadius = "0dp"
     android:thicknessRatio = "2.0"
     android:useLevel = "false"
     app:cardElevation = "0dp">

          <ImageView
               android:id = "@+id/profile_image1"
               android:layout_width = "match_parent"
               android:layout_height = "match_parent"
               app:srcCompat = "@mipmap/ic_person_foreground" />

 </androidx.cardview.widget.CardView>

Мой образец:

Другие вопросы по теме