有没有办法让CardView在顶部只有角半径?
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
>
dependencies: compile 'com.android.support:cardview-v7:23.1.1'
<android.support.v7.widget.CardView
android:layout_width="80dp"
android:layout_height="80dp"
android:elevation="12dp"
android:id="@+id/view2"
app:cardCornerRadius="40dp"
android:layout_centerHorizontal="true"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="1.9">
<ImageView
android:layout_height="80dp"
android:layout_width="match_parent"
android:id="@+id/imageView1"
android:src="@drawable/Your_image"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
</ImageView>
</android.support.v7.widget.CardView>
您可以使用官方材料组件库中包含的标准MaterialCard
。
在您的布局中使用:
<com.google.android.material.card.MaterialCardView
style="@style/MyCardView"
...>
在您的样式中,使用shapeAppearanceOverlay属性自定义形状(默认角半径为4dp)
<style name="MyCardView" parent="@style/Widget.MaterialComponents.CardView">
<item name="shapeAppearanceOverlay">@style/ShapeAppearanceOverlay.MaterialCardView.Cut</item>
</style>
<style name="ShapeAppearanceOverlay.MaterialCardView.Cut" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSizeTopRight">8dp</item>
<item name="cornerSizeTopLeft">8dp</item>
<item name="cornerSizeBottomRight">0dp</item>
<item name="cornerSizeBottomLeft">0dp</item>
</style>
您还可以使用:
<com.google.android.material.card.MaterialCardView
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.MaterialCardView.Cut"
...>
它是结果:
除非您尝试扩展AndroidCardView
类,否则无法从XML
自定义该属性。
然而,有一种方法可以获得这种效果。
将一个CardView
放在另一个CardView
内,并将透明背景应用于您的外部CardView
并删除其角半径("角Radios=0dp"
)。例如,您的内部CardView
将具有3dp的角半径值。然后将边际顶应用于您的内部CardView
,因此它的底边将被外部CardView
切割。这样,您的内部CardView
的底角半径将被隐藏。
XML代码如下所示:
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view_outer"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_gravity="center"
card_view:cardBackgroundColor="@android:color/transparent"
card_view:cardCornerRadius="0dp"
card_view:cardElevation="3dp" >
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view_inner"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_marginTop="3dp"
card_view:cardBackgroundColor="@color/green"
card_view:cardCornerRadius="4dp"
card_view:cardElevation="0dp" >
</android.support.v7.widget.CardView>
</android.support.v7.widget.CardView>
视觉效果如下:
始终将内容放在内部的卡片视图中。外部CardView仅用于“隐藏”内部CardView的底部圆角。
我正在膨胀一个自定义布局与CardView内的布局。圆角显示如预期,但我也得到灰色背景后面的角落。 代码很简单,使用带有角半径和背景颜色的CardView。我试过设置透明背景,但不起作用。但是,如果我设置了另一种不透明颜色,则显示在角落中。 代码已附上。 结果:
我已经研究这个问题几个星期了,但我仍然无法解决这个问题。 我有一个CardView,它包含一个带有ImageView的线性布局。 没有那个半径共享元素过渡可以无缝工作。但是,当我将半径(app: cardCornerRadius="25dp")添加到CardView时,共享元素过渡看起来很难看,因为它首先删除半径,然后开始动画。 第一种方法:ObjectAnimator 我创建ObjectAnim
本文向大家介绍Python实现全角半角转换的方法,包括了Python实现全角半角转换的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲解了Python实现全角半角转换的方法,相信对于大家的Python学习能够起到一定的参考借鉴价值。如下所示: 一、全角半角转换概述: 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E) 半角字符unicode编码
问题内容: 在Objective-C中,这样的行 做它的工作,我用类比在Swift中尝试过 并没有任何改变,转角与以前相同。此外,Xcode不会显示任何语法错误。Swift是否支持其他任何方式来实现这一目标?我在这里检查了其他一些线程,通常按上面显示的方式在Swift中完成。 问题答案: 图层从剪辑区域中抽出,您需要将其设置为遮罩边界: 从文档: 默认情况下,拐角半径不适用于图层的contents
在给Android launcher图标圆角时,有没有关于边缘半径应该是多少像素的官方指南? 我找到了启动器图标像素大小的指导方针(但没有提到圆角),一个名为Android资产工作室的工具,它可以为你圆角(但该工具在每个图标的边缘提供了不理想的和不可配置的填充),以及另一个名为图标杀手的工具(但该工具创建的角我觉得太圆了,感觉非常iOS)。 我还注意到,在我个人使用的所有在启动图标上有圆角的应用程
我有一个元素,其中左上角和右下角的边框半径为5,我试图使它与CSS3Pie兼容。文件指出 只支持速记版本;longhand border-top-left-radius等属性不是。不过,速记语法支持每个角的半径不同。链接