将其
cardCornerRadius
属性的值调整到
layout_width
和
layout_height
值的一半
效果如图:
项目场景:如果你想用CardView加ImageView做出一个带有质感的圆角按钮,但是Android11运行完美无瑕,可是切换到android7却发现漏洞百出,那么一下便是最佳解决方案问题描述:如图这是布局代码这是Android11上运行的结果这是android7运行的结果原因分析:在特大小下圆形CardView遭不住比它半径还大的cardCornerRadius属性这就导致了填充不满的问题解决方案:将其cardCornerRadius属性的值调整到layout_width
源码
版本
:
android
x1.0.0
最基本的使用方式,添加了app:cardCornerRadius属性,就可以
实现
圆角
了。app:cardElevation是用来
实现
阴影效果的,我们暂时不管阴影。
Build.VERSION.SDK_INT >= 21
实现
原理
我们先看Build.VERSION.SDK_INT >= 21,也就是
Android
版本
5.0及以上的是如何
实现
圆角
的。先说一下5.0及以上的结论:
给
CardView
设置一个
圆角
矩形的背景。
使用该背景作为轮廓剪裁
CardView
看到上面这个效果,就会想到让美工切一张
圆角
图片用
imageview
来
实现
,这也是一种
实现
的方式,
实现
起来也比较方便,且不用做什么兼容适配;其实
android
系统提供了
CardView
这个控件
实现
起来也很方便,同时还可以
实现
一些其他的效果。
CardView
是
android
5.0
出现
的一个Material Design风格的控件,extends FrameLayout,可以把它当做一个布局容器来使用
四个角很丑有没有,
出现
的原因是我在自定义View的根布局上使用了app:cardCornerRadius这个属性,却没有在使用这个自定义View时给它再设置app:cardCornerRadius这个属性(纳闷为什么会
出现
这种情况,有知道的大佬一定请告诉我)
<?xml version=...
Android
开发过程中,
ImageView
是必不可少的几种控件之一,通常为了美观,图标等内容会设置为
圆角
,以下简单总结了几种设置
圆角
的方法。Round
ImageView
为第三方库,在build.gradle(:app)中使用以下语句导入:
该控件使用起来也非常方便,
圆角
设置为10dp示例如下:
效果如下:
2.
CardView
CardView
为
Android
系统自带控件,使用
CardView
包裹
ImageView
也可以
实现
圆角
效果,需要注意的是,
CardView
有可能会影响到控件层级,可以通过设置避
一直在纠结为什么设置的
圆角
无效果,在网上查找各种办法没有找到,最后灵感以来把 card_view 的引用换成
xmlns:card_view="http://schemas.
android
.com/apk/res-auto"
这样就好了
正确的方式:xmlns:card_view="http://schemas.
android
.com/apk/res-auto"
错误的方式:xmlns:card_view="http://schemas.
android
.com...
要
实现
安卓
CardView
左右上角
圆角
,可以通过设置
CardView
的背景为一个
圆角
矩形 ShapeDrawable,在 ShapeDrawable 中设置左右上角为
圆角
即可。
以下是一个示例代码:
1. 创建
圆角
矩形 ShapeDrawable
<shape xmlns:
android
="http://schemas.
android
.com/apk/res/
android
"
android
:shape="rectangle">
<corners
android
:topLeftRadius="10dp"
android
:topRightRadius="10dp"
android
:bottomLeftRadius="0dp"
android
:bottomRightRadius="0dp"/>
<solid
android
:color="@color/
cardview
_light_background"/>
</shape>
2. 在
CardView
中设置背景
<
android
.support.v7.widget.
CardView
android
:layout_width="match_parent"
android
:layout_height="wrap_content"
android
:layout_margin="10dp"
android
:background="@drawable/
cardview
_bg">
<!--
CardView
内容 -->
</
android
.support.v7.widget.
CardView
>
在上面的代码中,`@drawable/
cardview
_bg` 是指上面创建的
圆角
矩形 ShapeDrawable。这样设置后,就可以
实现
安卓
CardView
左右上角
圆角
了。