gpt4 book ai didi

Android 用于按钮单击的扩展圆圈动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:36 27 4
gpt4 key购买 nike

有谁知道如何实现这样的按钮转换:

enter image description here

最佳答案

很简单=]

第 1 步 - 使用 CardView(您可以使用另一个 ViewGroup)和按钮创建布局。 卡片 View 必须是不可见的像这样:

<RelativeLayout 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_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#000">

<Button
android:id="@+id/btn_go"
android:text="Go!"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<android.support.v7.widget.CardView
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="200dp"
android:visibility="invisible"/>
</RelativeLayout>

设置 2 - 创建一个在 View 中制作圆形显示的方法:

private void circularRevealCard(View view){
float finalRadius = Math.max(view.getWidth(), view.getHeight());

// create the animator for this view (the start radius is zero)
Animator circularReveal = ViewAnimationUtils.createCircularReveal(view, 0, 0, 0, finalRadius * 1.1f);
circularReveal.setDuration(300);

// make the view visible and start the animation
view.setVisibility(View.VISIBLE);

circularReveal.start();
}

第 3 步 - 监听按钮中的点击并为 CardView 设置动画

 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});

Button goBtn = (Button) findViewById(R.id.btn_go);
final CardView cardView = (CardView) findViewById(R.id.card);

goBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
circularRevealCard(cardView);
}
});
}

就是这样。您将获得与您提供的图像相同的结果(您只需对其进行润色)

结果:

enter image description here

编码愉快!

关于Android 用于按钮单击的扩展圆圈动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21507429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com