• Material Design控件 之 CardView


    1. 简介

            CardView 是继承于 FrameLayout,官方说明它是一个带有圆角背景和阴影的Framelayout。

    从英文解释它是一个卡片视图,CardView 可以作为一个子布局,也可以作为一个父布局里面在填

    充子视图(因为它本身是一个Framelayout容器)。

    2. CardView属性

            我们看看它的属性:

    1. <resources>
    2. <declare-styleable name="CardView">
    3. <attr name="cardBackgroundColor" format="color" />
    4. <attr name="cardCornerRadius" format="dimension" />
    5. <attr name="cardElevation" format="dimension" />
    6. <attr name="cardMaxElevation" format="dimension" />
    7. <attr name="cardUseCompatPadding" format="boolean" />
    8. <attr name="cardPreventCornerOverlap" format="boolean" />
    9. <attr name="contentPadding" format="dimension" />
    10. <attr name="contentPaddingLeft" format="dimension" />
    11. <attr name="contentPaddingRight" format="dimension" />
    12. <attr name="contentPaddingTop" format="dimension" />
    13. <attr name="contentPaddingBottom" format="dimension" />
    14. declare-styleable>
    15. resources>

    用表格来描述更简洁:

    属性说明
    app:cardBackgroundColor卡片背景颜色
    app:cardCornerRadius卡片的圆角大小
    app:cardElevation阴影的大小
    app:cardMaxElevation阴影最大高度
    app:contentPadding卡片内容与边距的间隔

    我们来写一个布局文件:activity_cardview.xml

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3. android:layout_width="match_parent"
    4. android:layout_height="match_parent"
    5. xmlns:app="http://schemas.android.com/apk/res-auto">
    6. <androidx.cardview.widget.CardView
    7. android:clickable="true"
    8. android:foreground="?android:attr/selectableItemBackground"
    9. app:cardBackgroundColor="#FFC0CB"
    10. app:cardCornerRadius="10dp"
    11. app:cardElevation="7dp"
    12. app:contentPadding="3dp"
    13. android:layout_gravity="center"
    14. android:layout_height="wrap_content"
    15. android:layout_width="400dp">
    16. <RelativeLayout
    17. android:layout_width="match_parent"
    18. android:layout_height="wrap_content">
    19. <ImageView
    20. android:id="@+id/image"
    21. android:layout_height="280dp"
    22. android:layout_width="match_parent"
    23. android:src="@drawable/xiaoqingxin"
    24. android:scaleType="fitCenter"
    25. />
    26. <TextView
    27. android:layout_height="wrap_content"
    28. android:layout_width="wrap_content"
    29. android:textSize="14dp"
    30. android:text="夏天的风,暖暖的。吹到身上,舒舒服服的。夏天的风,有的不仅仅是泥土的芬芳,花鸟的姿色,还有一份独特而又朴实的青涩。"
    31. android:layout_below="@id/image"
    32. android:layout_marginTop="1dp"
    33. android:fontFamily="sans-serif-black"
    34. />
    35. </RelativeLayout>
    36. </androidx.cardview.widget.CardView>
    37. </androidx.coordinatorlayout.widget.CoordinatorLayout>

    CardView作为父布局CoordinatorLayout的子控件
    自身内部又包含了一个RelativeLayout子控件:包含一张图片和文字说明

    2.1 添加水波纹点击效果

    CardView默认是没有点击效果的,如果要添加,如下方法:

    1. android:clickable="true"
    2. android:foreground="?android:attr/selectableItemBackground"

    1. 配置可点击   2. 设置 android:foreground 属性

    2.2 设置背景颜色

          app:cardBackgroundColor="#FFC0CB"

          设置为粉红色背景

    2.3 设置圆角

          app:cardCornerRadius="10dp"

           卡片的四周圆角

    2.4 设置背景阴影

            app:cardElevation="7dp" 

            就是Z轴坐标大小,卡片有个背景阴影效果

    2.5 设置内容与边框的距离

            app:contentPadding="3dp"

            内容与边框的距离大小

    3. 效果图

     

     

     

     

  • 相关阅读:
    Hugging News #0407: Google AI 的 Pix2Struct 来啦、开发者资源页面发布
    软件TFN 2K的分布式拒绝攻击(DDos)实战详解
    Common Sense Machines(CSM):立志成为图像生成适用于游戏引擎的3D资产AI产品
    window小技巧---------电脑自动开关机/电脑自动开机后打开应用/打开浏览器后自动响应某个页面并且f12
    MyBatis中使用#{}和${}占位符传递参数的各种报错信息处理
    第八章 接口
    国民技术 N32G45x 串口踩坑
    如何去掉照片中多余路人?一分钟帮你搞定
    32、学习 Java 中的注解(参照官方教程)
    ExtC++(PBDS) 食用方法
  • 原文地址:https://blog.csdn.net/u012514113/article/details/127107495