Android - CardView 变成菱形,因为半径太大
Android - CardView becomes a diamond shape because radius too large
我在我的应用程序中使用 android.widget.CardView
。
在我的Android11设备中,当radius大于View时,会自动调整为View的一半大小。(不知道是哪个版本调整的)
低系统版本(我用Android7.1测试),当半径大于View时,CardView会变成菱形
谁知道为什么以及如何解决?谢谢
很多时候,Glide 库用于加载图像。这个库可以帮助圆边如下
Glide.with(context)
.load(url)
.circleCrop()
.into(imageView)
和这个图书馆交朋友,你会很开心。不仅可以帮助形象成型,还能正确使用内存https://github.com/bumptech/glide
P.S:在我看来,使用 CardView 对您来说是非常有限的。
您可以使用约束布局作为根元素,并根据需要使用圆形(矩形)作为背景,并将图像放在布局中。
为了保持形状我经常使用下一个属性(示例如下):
app:layout_constraintDimensionRatio="W,1:2".
在你的情况下比率必须是1:1因为它是圆而不是椭圆,那么你可以使用
app:layout_constraintDimensionRatio="W,1:1"
或 app:layout_constraintDimensionRatio="H,1:1"
我不确定这是否适用于 CardView,但它适用于 ConstraintLayout。
这是在androidXML
中使用卡片视图使图像获得圆形边框的最常见且最简单的方法之一
首先在您的 XML 中创建一个卡片视图,并在其中创建一个图像视图,其宽度和高度都比卡片视图小 1dp,然后尝试根据您的要求调整 cardCornerRadius,即就这么简单
我在这里使用androidx.cardview.widget.CardView
。
<androidx.cardview.widget.CardView
android:layout_width="70dp"
android:layout_height="70dp"
app:cardCornerRadius="35dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">
<ImageView
android:id="@+id/rounded_profile_img"
android:layout_width="69dp"
android:layout_height="69dp"
android:scaleType="centerCrop"/>
</androidx.cardview.widget.CardView>
谢谢希望大家喜欢,对大家有帮助。
我在我的应用程序中使用 android.widget.CardView
。
在我的Android11设备中,当radius大于View时,会自动调整为View的一半大小。(不知道是哪个版本调整的)
低系统版本(我用Android7.1测试),当半径大于View时,CardView会变成菱形
谁知道为什么以及如何解决?谢谢
很多时候,Glide 库用于加载图像。这个库可以帮助圆边如下
Glide.with(context)
.load(url)
.circleCrop()
.into(imageView)
和这个图书馆交朋友,你会很开心。不仅可以帮助形象成型,还能正确使用内存https://github.com/bumptech/glide
P.S:在我看来,使用 CardView 对您来说是非常有限的。
您可以使用约束布局作为根元素,并根据需要使用圆形(矩形)作为背景,并将图像放在布局中。
为了保持形状我经常使用下一个属性(示例如下): app:layout_constraintDimensionRatio="W,1:2".
在你的情况下比率必须是1:1因为它是圆而不是椭圆,那么你可以使用
app:layout_constraintDimensionRatio="W,1:1"
或 app:layout_constraintDimensionRatio="H,1:1"
我不确定这是否适用于 CardView,但它适用于 ConstraintLayout。
这是在androidXML
中使用卡片视图使图像获得圆形边框的最常见且最简单的方法之一首先在您的 XML 中创建一个卡片视图,并在其中创建一个图像视图,其宽度和高度都比卡片视图小 1dp,然后尝试根据您的要求调整 cardCornerRadius,即就这么简单
我在这里使用androidx.cardview.widget.CardView
。
<androidx.cardview.widget.CardView
android:layout_width="70dp"
android:layout_height="70dp"
app:cardCornerRadius="35dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">
<ImageView
android:id="@+id/rounded_profile_img"
android:layout_width="69dp"
android:layout_height="69dp"
android:scaleType="centerCrop"/>
</androidx.cardview.widget.CardView>
谢谢希望大家喜欢,对大家有帮助。