android - 使用 android.support.design.circulareveal.cardview.CircularRevealCardView 显示效果
问题描述
我想创建一个类似 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 一样,我可以在单击按钮时将其设置为可见/不可见。但是,我在网上找不到任何实现,显示如何在使该视图可见的同时应用显示动画。是否有应用动画的内置功能,还是我必须自己创建一个?
解决方案
请试试这个
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();
推荐阅读
- docker - Jenkins - 从 Docker 代理到其他 Docker 容器的通信
- c# - 如何在 WPF C# 中的 ItemsControl 中获取项目值?
- javascript - 为 Flutter Web 应用添加 id 或 name 属性或其他标识方式?
- html - Bootstrap 使列的高度相同 - 在文本行上对齐
- pyspark - pyspark 爆炸字典列表并根据字典键对它们进行分组
- extjs - 在 extjs 4.2.1 中禁用整个列
- javascript - 如何使用 NodeJS 从 MongoDb 获取 JSONObject 形式的结果
- python - 删除文件夹和所有子文件夹中python中的文件类型
- elasticsearch - ElasticSearch 索引,它们是如何工作的以及它们是什么?
- apache-flink - flink 集群重启时自动恢复作业