不用自定义View,CardView实现圆角、原型、阴影等高级功能

CardView是google在5.0中提供带圆角和阴影的布局,继承自FrameLayout。

常用属性解说:

android:cardBackgroundColor :设置CardView的背景颜色,这个很好理解
app:cardCornerRadius:设置CardView四周的圆角大小
app:cardElevation:设置阴影尺寸
app:cardMaxElevation:设置阴影的最大尺寸
app:contentPadding:设置CardView的内边距,对CardView设置padding内边距属性是无效的(见图一)。另外需要注意的是单单设置contentPadding属性,展示出来的图片在效果上是无圆角的(见图二):

在这里插入图片描述
图一
在这里插入图片描述
图二

app:cardUseCompatPadding:这个属性如果你设置成true的话,那么就能保证所有版本的Padding都设置相同的Padding
app:cardPreventCornerOverlap:是否裁剪边界以防止重叠,以保证边角是圆形的!通常该属性为了避免内容和边角的重叠。向下兼容低版本SDK时设置为false。
xml代码如下:

	<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        app:cardCornerRadius="8dp"
        android:layout_margin="@dimen/qb_px_30"
        app:cardElevation="@dimen/qb_px_20"
        app:cardUseCompatPadding="true"
        app:cardPreventCornerOverlap="false"
        android:clickable="true">

        <ImageView
            android:id="@+id/ivCard"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"/>
	</android.support.v7.widget.CardView>

另外,CardView还可以用来展示圆形图片,就如下图所示:
在这里插入图片描述
实现方法很简单,就是在给CardView设置app:cardCornerRadius属性的时候,将值设置为CardView的宽高的一半即可:

 <android.support.v7.widget.CardView
        android:id="@+id/cvCircler"
        android:layout_width="@dimen/qb_px_300"
        android:layout_height="@dimen/qb_px_300"
        android:layout_below="@+id/rlTextView"
        android:layout_marginTop="@dimen/qb_px_30"
        android:layout_marginLeft="@dimen/qb_px_30"
        app:cardCornerRadius="@dimen/qb_px_150">

        <ImageView
            android:id="@+id/ivCircler"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/spring02"
            android:scaleType="fitXY"/>
</android.support.v7.widget.CardView>

这里需要注意的是:当给ImageView设置图片是使用src方式的时候,需要给ImageView设置android:scaleType属性,取值则根据需求选择centerCrop或者fitXY。如果是background方式的话,则不需要。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值