可挖孔、可圆角、可带分割线的卡片 ViewGroup

Android开发:RecyclerView与CardView高效实现列表布局 RecyclerView是Android开发中用于展示列表数据的核心组件,通过视图回收机制显著提升性能表现。其工作原理基于Adapter模式,将数据绑定与视图渲染分离,配合LayoutManager实现线性、网格等多种布局方式。CardView作为Material Design的重要组件,为列表项提供卡片式UI效果,内置阴影和圆角支持。这两种控件的组合能高效构建现代Android应用的列表界面,特别适合新闻流、商品展示等场景。本文通过实际项目案例,详细解析如何配置依赖、优化性能,并解决常见问题,帮助开发者掌 阅读详情

Download

使用

implementation 'com.vegen.open:HoleCardView:+'

其中 '+' 请填写版本号 Download 后的最新版本

使用示例

布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.vegen.open.library.HoleCardView
        android:layout_width="match_parent"
        android:layout_height="150dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        app:holeElevation="8dp"
        app:holeBackgroundColor="@android:color/white"
        app:holeScallopRadius="10dp"
        app:holeCornerRadius="10dp">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@mipmap/demo"
                android:scaleType="centerCrop"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="14dp"
                android:text="可挖孔、可圆角、可带分割线的卡片 ViewGroup"
                android:layout_centerInParent="true"/>
        </RelativeLayout>

    </com.vegen.open.library.HoleCardView>

    <com.vegen.open.library.HoleCardView
        android:layout_width="match_parent"
        android:layout_height="150dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="180dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        app:holeElevation="8dp"
        app:holeBackgroundColor="@android:color/white"
        app:holeScallopRadius="10dp"
        app:holeCornerRadius="10dp"
        app:holeShowDivider="true">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:gravity="center">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="14dp"
                android:text="可挖孔、可圆角、可带分割线的卡片 ViewGroup"
                />

            <TextView
                android:layout_marginTop="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="14dp"
                android:text="可挖孔、可圆角、可带分割线的卡片 ViewGroup"
                />
        </LinearLayout>

    </com.vegen.open.library.HoleCardView>

</android.support.constraint.ConstraintLayout>

demo 效果如下
在这里插入图片描述

相关属性

属性名称意义类型默认值
holeOrientation卡片的圆角方向enumhorizontal
holeBackgroundColor卡片颜色colorandroid.R.color.white
holeScallopRadius卡片半圆的半径dimension20dp
holeScallopPositionPercent卡片半圆显示在所在方向的百分比位置float50
holeShowBorder是否显示边框booleanfalse
holeBorderWidth边框宽度dimension2dp
holeBorderColor边框颜色colorandroid.R.color.black
holeShowDivider是否显示分割线booleanfalse
holeDividerWidth分割线的宽度dimension2dp
holeDividerPadding分割线两端的距离dimension10dp
holeDividerColor分割线颜色colorandroid.R.color.darker_gray
holeDividerType分割线模式,normal:直线,dash:间隔分割线,默认enumdash
holeDividerDashGap圆帽大小dimension4dp
holeDividerDashLength分割线的长度dimension8dp
holeCornerType控件的类型,normal:矩形;rounded:圆角矩形,默认;scallop:外向圆角enumrounded
holeCornerRadius圆角半径dimension10dp
android:elevation阴影dimension0f
holeElevation阴影dimension0f

注意:只能有一个直接子布局

Flutter自定义实现神奇动效的卡片切换视图 Flutter实现的可以自定义酷炫动效的卡片切换视图 立即下载

相关推荐

使用CSS实现中间镂空的图片遮罩效果

中间镂空的图片遮罩指的大概就是这样一个效果: 镂空一个洞的代码 CSS Code复制内容到剪贴板 <div u00a0id=container style>    <svg style=position: absolute; width=400 height=280>    <defs>    <mask u00a0id=mask3>    <rect x=0 y=0 width=100% height=100% style=stroke:no

Android 圆角布局Layout控件,支持RoundLinearLayout与RoundRelativeLayout

1. 为什么要写这个圆角控件 正常来说我们只需要在drawable文件夹下创建以下xml文件,然后在布局文件中background属性指定一下就可以将布局设置为圆角。 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@android:color/blue" /> <corners android:radius="22dip"/>

weixin_42169702的博客 3281

dreamerv3复现教程

由于dreamerv3存在很多版本冲突问题,所以很难直接使用和复现。

无人机飞啊飞啊飞 2833

Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)

前言:经常会看到有一些app的banner界面可以实现循环播放多个广告图片和手动滑动循环。本以为单纯的ViewPager就可以实现这些功能。但是蛋疼的事情来了,ViewPager并不支持循环翻页。所以要实现循环还得需要自己去动手。自己再网上也找了写例子,本博文的Demo是结合自己找到的一些相关例子的基础上去改造,也希望对读者有用。   Demo实现的效果图如下:

stevenhu_223的专栏 18万+

数据标注工具:AiLabel.js实现标注 超详细教程 案例分享

背景:在前端开发过程中难免遇到针对图片的缩放平移;以及在图片上进行矢量数据、文本、标注的展示;如果你有上面的任何需求,恭喜你,找到组织了.... 在此背景下,AILabel.js出生了。 前面文章我们已经介绍过AiLabel.js了; https://blog.youkuaiyun.com/u012967771/article/details/113148527 npm下载地址:https://www.npmjs.com/package/ailabel github地址:https://github.com/d.

前端互助会 9365

如何实现一个用STM32F103C8T6作为主控芯片,加上AD8232、MAX30102 、MPU6050模块的用于运动中监测心率变异性??

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1212

Android 自定义布局控件-圆形RelativeLayout

Android 自定义布局控件-圆形RelativeLayout 转自“姜徕”,原文链接:https://blog.youkuaiyun.com/jiang001002jay/article/details/61418338 效果图: 创建自定义类:CircleRelativeLayout.java package com.jzy.circularlayout; import andr...

RandowWrite 1959

【花雕学编程】Arduino FOC 之AS5048A磁编码器模块

您的硬件平台、使用场景和Arduino版本可能影响使用方法的选择。在Arduino平台上实现FOC可以提供平滑的运行和高度的扭矩、速度和位置控制,它通过精确控制电机的电流和电压来实现高效率、高精度和低噪声的操作。5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。1、高性能电机控制:FOC是一种高级的电机控制算法,可以精准控制PMSM(永磁同步电机)和BLDC(无刷直流)电机,实现平滑的转速和扭矩输出。

雕爷学编程 1496

Android接入融云即时通讯SDK,实现单聊和发送自定义消息。

项目中用到了融云IM聊天功能和自定义消息,今天记录一下接入的过程。 先看下效果图~ 打开融云官网:https://www.rongcloud.cn/注册账号登录后进入控制台找到服务管理然后创建自己的应用完成后就可以看到对应的Key。 进入开发者中心下载对应的SDK我这里选择的是手动集成方式,你也可以选择Maven集成。 我这里只保留了即时通讯组件 然后新建一个项目,把下载的SDK导入进来。 在IMKIt build.gradle中把IMLib这个库依赖进去 api pro...

然了个然 5200

Claude Code Auto Memory 的 Storage Location,SAP ABAP 项目里的本地记忆仓库应该怎么理解

本文介绍了 SAP ABAP 项目中 Claude Code 的 auto memory 机制,重点探讨了其存储位置的设计原理。auto memory 不是存储在项目目录中,而是默认位于 ~/.claude/projects/<project>/memory/,其中 <project> 基于 Git 仓库路径推导,确保同一仓库下的所有工作目录和分支共享记忆。记忆目录包含入口文件 MEMORY.md(仅加载前 200 行)和详细主题文件,这种分层设计类似 CDS View 架构思想。文章还分析了按 Git 仓

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 100

MATLAB 基于深度学习的步态识别算法仿真

步态识别是一种通过分析人体行走方式来识别身份的技术。基于深度学习的步态识别算法利用卷积神经网络 (CNN) 提取步态特征,并通过分类器进行身份识别。基于深度学习的步态识别算法是实现身份识别的重要手段,具有广泛的应用前景。MATLAB 提供了丰富的工具和函数,可以方便地进行算法仿真和性能评估。

走向CTO的路上... 518

安卓StepView事件进度条的简单实现

需求 1.竖向展示事件列表 2.每个事件包含详情内容时可进行展开折叠 3.默认展开最后一级别有内容的列表 既然说简单实现。那么用RecyclerView实现吧1.item布局,这里可以把一个个item分割为以下部分 我们这里可以利用recyclerview默认不带分割线的特点,最左侧的进度线就分割成两条线跟一个图片。右边展开折叠只是显示隐藏布局。展开的布局比较简单就是一个文本加上

Liberation的博客 2508

(11-3-03)多任务与元强化学习:综合实战:基于元强化学习的迷宫导航系统(3)

本文介绍了策略网络隐空间可视化的实现方法及其在强化学习中的应用。通过设计visualize_latent_space函数,使用t-SNE算法将高维隐空间特征降维至二维进行可视化,直观展示策略网络在不同任务中的特征分布。文章详细阐述了实现流程:状态收集、t-SNE降维和可视化绘图,并提供了完整的Python代码示例。实验结果表明,该方法能有效分析策略网络的学习过程与适应能力,为优化模型提供重要依据。同时,文章还介绍了主程序的完整流程,包括环境初始化、元智能体训练与评估、学习策略比较等环节,最后对实验结果进行可

码农三叔 1041

Android卡片列表实战:RecyclerView+CardView性能优化与兼容性指南

RecyclerView是Android中实现高效列表展示的核心组件,其核心价值在于视图复用机制与解耦的布局管理能力;CardView则并非简单美化控件,而是Material Design物理分层理念的可编程实现,通过cardElevation和cardCornerRadius模拟纸张Z轴高度与边缘弯曲。二者协同的关键技术价值在于兼顾UI一致性与运行时性能,尤其在中低端设备上需规避阴影渲染、动态文本高度、ViewHolder状态残留等典型陷阱。典型应用场景包括电商商品列表、新闻信息流、设置项面板等纯展示型界

weixin_30897233的博客 419

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android RecyclerView与CardView开发指南

RecyclerView是Android开发中用于高效展示列表数据的核心组件,采用视图回收机制显著提升性能。其架构设计将数据、视图和布局策略解耦,通过Adapter实现数据绑定,ViewHolder管理视图复用,LayoutManager控制排列方式,支持线性、网格和瀑布流等多种布局。CardView作为Material Design的重要实现,通过圆角、阴影和海拔属性创建层次分明的卡片式UI。在移动应用开发中,这两种组件常用于社交动态流、商品列表等场景。本文结合Kotlin示例详解RecyclerView

weixin_33716941的博客 381

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android RecyclerView与CardView开发实战指南

RecyclerView作为Android开发中的核心列表组件,通过ViewHolder视图复用机制有效解决了传统ListView的内存溢出问题。其灵活的LayoutManager设计支持列表、网格和瀑布流等多种布局方式,配合完善的动画系统实现流畅的交互体验。CardView则通过阴影和圆角等特性完美呈现Material Design的卡片式UI。这两种组件的组合在电商商品列表、社交信息流等场景中广泛应用。本文以Kotlin为例,详细讲解从Gradle依赖配置到高级功能实现的完整开发流程,包括动态阴影优化、

weixin_34268753的博客 381

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android开发:RecyclerView与CardView实战指南

RecyclerView是Android开发中用于高效展示列表数据的核心组件,采用视图回收机制显著提升性能。其原理是通过ViewHolder模式复用视图,配合LayoutManager实现灵活布局。CardView则提供Material Design风格的卡片式UI,通过阴影和圆角增强视觉层次。这两种组件结合使用,能构建既美观又高效的列表界面,特别适合商品展示、社交动态等场景。本教程以书籍目录应用为例,详解依赖配置、布局设计、适配器实现等关键步骤,并分享ViewHolder优化、DiffUtil等进阶技巧,

weixin_30896511的博客 394

Android LinearLayout 深度解析:权重、对齐与性能优化实战

在 Android 开发中,UI 布局是构建应用界面的基础。线性布局(LinearLayout)作为 Android 系统中最经典、最核心的布局容器之一,其设计哲学源于简单的单向流式排列。其核心原理是通过 orientation 属性决定子视图的排列方向,并利用 layout_weight 属性实现剩余空间的按比例分配,这是其区别于其他布局的关键机制。掌握 LinearLayout 的技术价值在于,它能够以极简的层级解决大量常规的界面排版问题,尤其是在需要等分或按比例分配空间的场景下,代码简洁且性能可控。在

weixin_33724570的博客 445

RecyclerView与CardView底层原理及生产级优化指南

RecyclerView是Android UI渲染流水线的调度中心,其核心在于LayoutManager、Adapter、ItemDecoration和ItemAnimator四大解耦模块的协同工作;CardView则不仅是视觉容器,更是Material Design物理隐喻(elevation、shadow、outline)的实现载体。理解Recycler缓存池的四级复用机制与ViewHolder生命周期,可精准规避notifyDataSetChanged()滥用、点击空指针、滑动卡顿等高频问题。结合Pa

weixin_30588675的博客 283

Android TextInputLayout 原理与生产级实践指南

TextInputLayout 是 Android 中实现语义化、可访问、响应式文本输入的核心组件,其本质是 Material Design 3 规范下对输入状态管理的抽象封装。它通过 TextInputEditText 与 TextInputLayout 的协同机制,统一处理浮动标签动画、错误反馈、焦点响应、辅助文本联动及动态主题适配等关键能力。相比传统 EditText,它将 UI 行为(如 hint 上浮、边框变色)与业务逻辑解耦,天然支持深色模式、无障碍服务和 Material You 动态配色。在

weixin_33928137的博客 390

Android ObjectAnimator custom Rounded Rectangle LinearLayout backgroundColor flicker ArgbEvaluator

Android ValueAnimator属性动画ObjectAnimator使View颜色渐变,Kotlin。Android ValueAnimator属性动画ObjectAnimator使View颜色渐变,Kotlin-优快云博客。基础上,自定义背景的layout,使得渐变闪烁的view为圆角线性布局。

Zhang Phil 516

Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用]

Fresco简单的使用—SimpleDraweeView 百学须先立志—学前须知:在我们平时加载图片(不管是下载还是加载本地图片…..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该呈现正在加载时的图像,当图片加载失败时应该呈现图片加载时的图像,当我们重新加载这张图片时,应该呈现重试时图像,直到这张图片加载完成。这些繁琐并且重复的如果得不到简化的话,那将是一个开发人员的噩梦,现在好了

y1笑而过 4万+

Fresco学习初步

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34295316的博客 128
上一篇: 含覆盖模式、色块拼接组合模式的可渐变、可中间带文字列表的圆环进度条
下一篇: Jni 学习之路--入门尝鲜详细教程
胡小明同学
博客等级 码龄10年 35粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值