当前位置: 首页 > 知识库问答 >
问题:

CardView角半径

谢修真
2023-03-14

有没有办法让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"
    >

共有3个答案

薛鹏飞
2023-03-14
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>
辛渝
2023-03-14

您可以使用官方材料组件库中包含的标准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"
     ...>

它是结果:

方永贞
2023-03-14

除非您尝试扩展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等属性不是。不过,速记语法支持每个角的半径不同。链接