【问题标题】:Reveal effect with android.support.design.circularreveal.cardview.CircularRevealCardView使用 android.support.design.circulareveal.cardview.CircularRevealCardView 显示效果
【发布时间】:2023-03-07 05:19:01
【问题描述】:

我想创建类似 WhatsApp 附件功能的显示效果。在环顾四周以创建自定义内容时,我发现 Android 的 android.support.design.circularreveal.cardview.CircularRevealCardView 视图已经可用,而无需添加任何外部库。

我这样实现了这个视图:-

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.circularreveal.cardview.CircularRevealCardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/ccv_attachment_reveal"
    style="@style/style_mw"
    android:elevation="@dimen/dimen_2dp"
    android:orientation="vertical"
    android:padding="@dimen/dimen_margin_16dp"
    app:cardCornerRadius="@dimen/dimen_8dp"
    >

    <android.support.v7.widget.LinearLayoutCompat
        style="@style/style_mw"
        android:orientation="vertical">

        <RelativeLayout
            android:id="@+id/rl_attachment_first_row"
            style="@style/style_ww"
            android:layout_marginStart="@dimen/dimen_30dp"
            android:layout_marginTop="@dimen/dimen_margin_16dp"
            android:layout_marginEnd="@dimen/dimen_30dp">

            <android.support.design.widget.FloatingActionButton
                android:id="@+id/fab_add_gallery_image"
                style="@style/style_ww"
                android:layout_alignParentStart="true"
                android:src="@drawable/ic_gallery_image"/>

            <android.support.design.widget.FloatingActionButton
                android:id="@+id/fab_add_camera_image"
                style="@style/style_ww"
                android:layout_centerHorizontal="true"
                android:src="@drawable/ic_camera"/>

        </RelativeLayout>

        <RelativeLayout
            style="@style/style_ww"
            android:layout_marginStart="@dimen/dimen_30dp"
            android:layout_marginTop="@dimen/dimen_margin_16dp"
            android:layout_marginEnd="@dimen/dimen_30dp"
            android:layout_marginBottom="@dimen/dimen_margin_16dp">

            <android.support.design.widget.FloatingActionButton
                android:id="@+id/fab_add_gallery_image1"
                style="@style/style_ww"
                android:layout_alignParentStart="true"
                android:src="@drawable/ic_gallery_image"/>

            <android.support.design.widget.FloatingActionButton
                android:id="@+id/fab_add_camera_image1"
                style="@style/style_ww"
                android:layout_centerHorizontal="true"
                android:src="@drawable/ic_camera"/>
        </RelativeLayout>
    </android.support.v7.widget.LinearLayoutCompat>
</android.support.design.circularreveal.cardview.CircularRevealCardView>

这在我的应用程序上显示正常,就像常规 CardView 一样,我可以在单击按钮时将其设置为可见/不可见。但是,我在网上找不到任何实现,显示如何在使该视图可见的同时应用显示动画。是否有应用动画的内置功能,还是我必须自己创建一个?

【问题讨论】:

标签: android android-support-library android-cardview android-support-design circularreveal


【解决方案1】:

请试试这个

int x = layoutContent.getRight();
int y = layoutContent.getBottom();

int startRadius = 0;
int endRadius = (int) Math.hypot(layoutMain.getWidth(), layoutMain.getHeight());

Animator anim = ViewAnimationUtils.createCircularReveal(layoutButtons, x, y, startRadius, endRadius);

layoutButtons.setVisibility(View.VISIBLE);
anim.start();

【讨论】:

  • ViewAnimationUtils.createCircularReveal 仅适用于 API 21+。见developer.android.com/reference/com/google/android/material/…
  • 您使用的是哪个 API 级别?
  • 在 Lollipop 上,您可以获得开箱即用的圆形剪裁。打扰 android.support.design.circularreveal 小部件的唯一原因是让它在 Android 4 上运行。
  • 好的,请看下面的链接希望对你有帮助stackoverflow.com/a/38394442/4329037
  • 圆形显示和波纹效果是两个不同的东西。问题是关于循环显示。为了使您的代码与 Android 4 兼容,您现在所要做的就是阅读我在第一条评论中链接的文档,change 1 行代码和 add 1行代码。了解您输入的内容,不要只是复制粘贴代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-02
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2016-04-04
相关资源
最近更新 更多