一个可以配置阴影方向和颜色的类 CardView 控件 SCardView

SCardView 是 CardView 的改良版,允许设置圆角阴影方向和颜色。解决了CardView在不同API版本上的显示差异问题,并提供了边角控制功能,增加了UI设计的灵活性。在XML布局中简单引入并配置即可使用。
摘要由CSDN通过智能技术生成

一、控件简述

  今天给大家推荐一个控件 SCardView ,看名字就很容易才出来它其实就是一个 CardView 。把它拿出来,是因为它解决了一些 CardView 无法实现的需求以及简化了 CardView 的使用。其实就是 CardView 的一个改良版。下面我们来介绍它:

  1. 实现圆角阴影效果,并可以设置阴影的方向

    CardView 也可以实现圆角阴影效果,但是 CardView 的阴影方向是我们无法设置的。为什么强调阴影方向这个条件呢,因为 CardView 在 API 21 之后,阴影的显示效果在屏幕的各个位置是不一致的。如果你在屏幕中使用了多个 CardView ,但是 UI 美眉告诉你这几个CardView 的阴影不一样,太难看,需要统一,并且让测试提成了一个 BUG 。怎么解决,这就是SCardView 出现的来源。

    看下 CardView 造成的阴影不一致的效果:

    SCardView 通过 cardLightDirection 属性来配置光源的位置来控制阴影的显示,如下:

<com.meetsl.scardview.SCardView
        android:layout_width="@dimen/card_size"
        android:layout_height="@dimen/card_size"
        android:layout_centerHorizontal="true"
        android:layout_margin="20dp"
        app:cardBackgroundColor="@android:color/holo_orange_dark"
        app:cardCornerRadius="5dp"
        app:cardElevation="@dimen/cardview_elevation"
        app:cardLightDirection="left">  <!--光源位置在左侧,则阴影出现在反方向右侧 -->

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:padding="5dp"
            android:text="left"
            android:textColor="@android:color/white"
            android:textSize="16sp" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@mipmap/home_back" />
    </com.meetsl.scardview.SCardView>

    在 cardLightDirection 中提供四面八方的值,足够满足你的需求:

<attr name="cardLightDirection">
            <enum name="left" value="1" /> <!-- 设置光源位置为左侧,阴影在右侧 -->
            <enum name="right" value="2" /> <!-- 阴影在左侧-->
            <enum name="top" value="3" /> <!-- 阴影在下部-->
            <enum name="bottom" value="4" /> <!-- 阴影在上部 -->
            <enum name="LT" value="5" /> <!-- 阴影在右下角-->
            <enum name="RT" value="6" /> <!-- 阴影在左下角
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值