Android中CardView的自定义弯曲形状

时间:2018-08-30 11:27:14

标签: android android-cardview

我刚开始使用android,为了学习一些东西,我只是想重新创建一些我在网上找到的基本概念。到目前为止,我最大的问题是在android中绘制自定义曲线形状的最佳方法。我知道这里曾多次问过类似的问题,但我找不到解决问题的方法。

Link to concept to recreate

我不知道如何复制这样的卡。到目前为止,我唯一的想法是在illustrator中创建弯曲的线,保存为svg并作为矢量资产导入android。此时,我只是想创建一个白色矩形并覆盖vectori资产。我绝对不认为这是最好的方法,但到目前为止我还不知道另一种方法。

非常抱歉,我的英语水平

3 个答案:

答案 0 :(得分:1)

用户CardView或创建您的自定义视图。

CardView

spark-submit --master yarn \
--deploy-mode cluster \
--jars sample.jar \
/home/user/helloworld.py  configurations.school_library configurations.school_canteen

自定义视图 在您的drawable.xml文件夹中创建形状

<android.support.v7.widget.CardView
    android:id="@+id/cardView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cardCornerRadius="@dimen/scale_7dp"
    app:cardElevation="@dimen/scale_5dp"
    app:cardUseCompatPadding="true">
</android.support.v7.widget.CardView>

希望这对您有所帮助。

答案 1 :(得分:0)

在应用程序中添加此依赖项,此lib将为Cardview提供一个圆角图像和其他图像。

 implementation 'com.makeramen:roundedimageview:2.3.0'
 implementation 'com.android.support:cardview-v7:28.0.0-rc01'

在xml中,父CardView及其子RoundedImageView具有相同的拐角半径。希望您知道Cardview的运作方式。写入“ YOUR_DRAWABLE_HERE”的位置,请使用您的可绘制对象进行更改

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
            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_margin="10dp"
            app:cardElevation="0dp"
            app:cardBackgroundColor="#00ffffff"
            android:layout_width="match_parent"
            android:layout_height="100dp">
            <com.makeramen.roundedimageview.RoundedImageView
                android:id="@+id/iv_look"
                android:layout_gravity="center"
                android:scaleType="fitXY"
                android:src="YOUR_DRAWABLE_HERE"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:riv_corner_radius="10dp"
                />
            <LinearLayout
                android:layout_width="match_parent"
                android:gravity="center_vertical"
                android:layout_height="match_parent">

                <ImageView
                    android:layout_margin="20dp"
                    android:layout_width="100dp"
                    android:src="@android:drawable/btn_default"
                    android:layout_height="50dp" />


                <TextView
                    android:text="YOUR TEXT"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
            </LinearLayout>
        </android.support.v7.widget.CardView>

Picture after implementation

答案 2 :(得分:0)

最好的实现方法是在布局中使用CardView。 包含

compile 'com.android.support:cardview-v7:21.0.0-rc1'

或与您现有的支持库兼容的任何其他版本。

之后,在布局xml文件中使用它

<android.support.v7.widget.CardView
    android:id="@+id/card_view"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardBackgroundColor="@color/grey_300"
    card_view:cardCornerRadius="10dp"
    card_view:cardElevation="5dp"
    card_view:cardUseCompatPadding="true">

将所有其他视图放入此Cardview中,您将获得弯曲的边缘。