CardView 角半径

新手上路,请多包涵

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

原文由 terencey 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 463
2 个回答

除非您尝试扩展 Android CardView 类,否则您无法从 XML 自定义该属性。

尽管如此,有一种方法可以获得这种效果。

CardView 放置在另一个 CardView 内,并将透明背景应用到您的外部 CardView 并删除它的圆角半径( "cornerRadios = 0dp" )例如,您的内部 CardView 的角半径值为 3dp。然后将 marginTop 应用于您的内部 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

始终将您的内容放在您的 Inner CardView 中。您的外部 CardView 仅用于“隐藏”内部 CardView 的底部圆角。

原文由 joao2fast4u 发布,翻译遵循 CC BY-SA 3.0 许可协议

您会在互联网上找到许多忍者技术,但最好的方法是创建一个“可绘制资源文件”并设计您自己的背景,并为每一侧或仅一侧设置一个半径。因此,这些是以下步骤:

  1. 右键单击可绘制文件。

截屏

  1. 然后单击新建,然后单击可绘制资源文件。

截屏

  1. 然后会弹出一个页面,您只需要设置文件的名称。

截屏

  1. 将选择器更改为形状。

截屏

  1. 并添加此代码。

截屏

  1. 最后一步是将这个新创建的可绘制文件设置为背景。

截屏

原文由 Abubakar Khalid 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题