Я использую 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 идеально круглый, но на других телефонах он выглядит так:
Кто-нибудь знает, как это исправить? Большое спасибо!
добавить эту строку в представление изображения
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>
Мой образец: