如何让ImageView超出CardView显示?Android布局问题求助
问题:ImageView无法超出CardView显示,被裁切
我想要实现让ImageView(示例中的汽车)超出CardView显示的效果,但运行以下布局代码后,鲸鱼ImageView并未超出CardView,而是被裁切了,请帮忙修改代码实现目标效果。
尝试的布局代码:
<androidx.cardview.widget.CardView android:id="@+id/d2" android:layout_height="150dp" android:layout_width="80dp" android:layout_columnWeight="1" android:layout_rowWeight="1" app:cardCornerRadius="20dp" android:layout_margin="20dp" android:padding="20dp" app:cardElevation="2dp"> <RelativeLayout android:id="@+id/image_container" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/sea" android:layout_width="match_parent" android:layout_height="wrap_content" android:scaleType="fitXY" android:adjustViewBounds="true" android:src="@drawable/sea" android:layout_gravity="top" android:maxHeight="400dp"/> <ImageView android:id="@+id/play" android:layout_marginTop="-30dp" android:layout_width="120dp" android:layout_height="120dp" android:layout_alignParentRight="true" android:src="@drawable/yonuswheal" /> </RelativeLayout> </androidx.cardview.widget.CardView>
解决方案
CardView默认会裁切超出自身边界的子View,只需添加几个属性关闭裁切限制,并调整内部容器的设置即可实现效果:
修改点说明
- 给CardView添加
android:clipChildren="false":允许子View超出CardView边界,不进行裁切 - 给CardView添加
android:clipToPadding="false":让子View可以延伸到CardView的padding区域之外 - 给CardView添加
app:cardPreventCornerOverlap="false":关闭默认的内容与圆角重叠限制,确保超出部分不会被圆角裁切 - 给内部的RelativeLayout添加
android:clipChildren="false":确保容器本身也不会裁切内部的ImageView
修改后的完整代码
<androidx.cardview.widget.CardView android:id="@+id/d2" android:layout_height="150dp" android:layout_width="80dp" android:layout_columnWeight="1" android:layout_rowWeight="1" app:cardCornerRadius="20dp" android:layout_margin="20dp" android:padding="20dp" app:cardElevation="2dp" android:clipChildren="false" android:clipToPadding="false" app:cardPreventCornerOverlap="false"> <RelativeLayout android:id="@+id/image_container" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false"> <ImageView android:id="@+id/sea" android:layout_width="match_parent" android:layout_height="wrap_content" android:scaleType="fitXY" android:adjustViewBounds="true" android:src="@drawable/sea" android:layout_gravity="top" android:maxHeight="400dp"/> <ImageView android:id="@+id/play" android:layout_marginTop="-30dp" android:layout_width="120dp" android:layout_height="120dp" android:layout_alignParentRight="true" android:src="@drawable/yonuswheal" /> </RelativeLayout> </androidx.cardview.widget.CardView>
内容的提问来源于stack exchange,提问作者Llama Cookies
相关产品推荐
相关产品推荐

