如何在Android中创建循环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>

解决方法

<androidx.cardview.widget.CardView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_margin="10dp"
        app:cardCornerRadius="100dp"/>

可能正在将app:cardCornerRadius更改为宽度和高度的一半。

OR 可能是自定义CardView

public class CircularCardView extends CardView {
    public CircularCardView(@NonNull Context context) {
        super(context);
    }

    public CircularCardView(@NonNull Context context,@Nullable AttributeSet attrs) {
        super(context,attrs);
    }

    public CircularCardView(@NonNull Context context,@Nullable AttributeSet attrs,int defStyleAttr) {
        super(context,attrs,defStyleAttr);



    }
    @Override
    protected void onMeasure(int widthMeasureSpec,int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec,heightMeasureSpec);

        int width = getMeasuredWidth();
        setMeasuredDimension(width,width);
        setRadius(width/2);
    }
}

XML

<com.yourpackage.name.CircularCardView
        android:layout_width="50dp"
        android:layout_height="100dp"
        android:layout_margin="10dp"
        app:cardElevation="10dp"
        />
,

只需使用 shapeAppearanceOverlay 属性:

<com.google.android.material.card.MaterialCardView
    android:layout_width="100dp"
    android:layout_height="100dp"
    app:cardBackgroundColor="@color/colorPrimaryLight"
    app:shapeAppearanceOverlay="@style/circle"
    />

具有:

<style name="circle">
    <item name="cornerSize">50%</item>
</style>

enter image description here

,

如果您迁移到androidx会更好,但是您可以使用此代码在名片视图中添加形状

 <app:android.support.v7.widget.CardView
        android:layout_width="150dp"
        android:layout_height="148dp"
        android:elevation="12dp"
        app:cardCornerRadius="75dp"
        android:layout_centerHorizontal="true"
        android:innerRadius="40dp"
        android:shape="ring"
        android:thicknessRatio="4">
             
    </app:android.support.v7.widget.CardView>
,

我想要一个圆形的图像,所以做了类似的事情

import tensorflow as tf
from tensorflow.python.framework import test_util


class MyTestCase(tf.test.TestCase):
    @test_util.run_in_graph_and_eager_modes
    def test_something():
#...

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...