向包含 ImageView 的 Cardview 添加边框
Posted
技术标签:
【中文标题】向包含 ImageView 的 Cardview 添加边框【英文标题】:Adding border to Cardview which contains an ImageView 【发布时间】:2021-11-26 06:59:24 【问题描述】:我想为包含 ImageView 的卡片视图添加边框。如果我使用图标作为图像(矢量图形),它会非常完美。图像位于大小为 MATCH_PARENT 的 ImageView 中,并添加到卡片视图中。 cardview应该负责边界。因此,我以这种方式设置了卡片视图的背景图像:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#fff"/>
<stroke android: android:color="#e6e6e6" />
<corners android:radius="20dp"/>
<padding android:left="0dp" android:top="0dp"
android:right="0dp" android:bottom="0dp" />
</shape>
所以 ImageView 的图像似乎覆盖了 cardview 的背景。知道如何解决吗?
【问题讨论】:
【参考方案1】:这不是使用drawable 的直接解决方案,但我建议使用MaterialCardView
,它为您提供与使用app:strokeColor
、app:strokeWidth
和app:cardCornerRadius
的drawable 相同的规格:
<com.google.android.material.card.MaterialCardView
android:layout_
android:layout_
app:cardCornerRadius="20dp"
app:strokeColor="#e6e6e6"
app:strokeWidth="1dp">
<ImageView
android:id="@+id/imageView"
android:layout_
android:layout_
android:layout_margin="1dp"
android:background="@drawable/my_image" />
</com.google.android.material.card.MaterialCardView>
注意:添加到ImageView
的边距等于卡片笔划,因此它不会被卡片笔划覆盖,如果您愿意,可以将其删除。
【讨论】:
以上是关于向包含 ImageView 的 Cardview 添加边框的主要内容,如果未能解决你的问题,请参考以下文章
当我将 ImageView 添加到 CardView 或 Fragment 时,为啥我的应用程序会崩溃?