我有一个圆角的CardView,在CardView内部存在一个ImageView。问题是当我在图像中添加源时,图像从ImageView中隐藏了圆角。
我在macBook pro上尝试了下面给出的代码,产生了以下结果:
`<android.support.v7.widget.CardView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:elevation="10dp"
app:cardCornerRadius="10dp"
android:layout_margin="5dp"
app:cardPreventCornerOverlap="false" >
<ImageView
android:id="@+id/card_view_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/competition_background"
android:scaleType="fitXY"
/>
</android.support.v7.widget.CardView>`
尝试为imageview设置定义的宽度和高度。如果您的图像非常大,它将扩展到cardview之外。您还可以选择缩小图像的大小,这将导致较小的apk。在开发Android应用程序时要记住这一点。永远不要添加超出项目所需的资源。
所以你可以尝试这样的事情:
<android.support.v7.widget.CardView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:elevation="10dp"
app:cardCornerRadius="10dp"
android:layout_margin="5dp"
app:cardPreventCornerOverlap="false" >
<ImageView
android:id="@+id/card_view_image"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/competition_background"
android:scaleType="fitXY"
/>
</android.support.v7.widget.CardView>`
另一个选项是将match_parent添加到您的imageview但添加一个边距,以便它不会扩展到您的cardview的角落:
<android.support.v7.widget.CardView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:elevation="10dp"
app:cardCornerRadius="10dp"
android:layout_margin="5dp"
app:cardPreventCornerOverlap="false" >
<ImageView
android:id="@+id/card_view_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="12dp"
android:src="@drawable/competition_background"
android:scaleType="fitXY"
/>
</android.support.v7.widget.CardView>`