これを試して :
public void startCircularReveal() {
final View view = findViewById(R.id.linearLayout);
final View startView = findViewById(R.id.button_container);
int cx = (startView.getLeft() + startView.getRight()) / 2;
int cy = (startView.getTop() + startView.getBottom()) / 2;
view.setBackgroundColor(Color.parseColor("#6FA6FF"));
int finalRadius = Math.max(cy , view.getHeight() - cy);
Animator anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, 0, finalRadius);
anim.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
anim.setDuration(200);
view.setVisibility(View.VISIBLE);
anim.start();
}
ビューをその上に表示するビュー (通常はルート ビュー) に変更し、 startView を「検索」アイコン ビューに変更し、 onAnimationEnd は表示が終了した後に必要なことを行います。
アップデート
リビールがビューの上にない場合、このビューをレイアウトの一番下に追加することで修正するちょっとしたコツがあります
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/custom_theme_color"
android:orientation="vertical"
android:visibility="invisible">
</LinearLayout>
ビュー「ビュー」がそのレイアウトのIDに設定されていることを確認してください
final View view = findViewById(R.id.linearLayout);
基本的に私がしたことは、LinearLayout を追加し、その幅と高さを match_parent と一致するように設定することです。そのため、このビューはすべての上にあり、このビューは明らかに上にある場所であり、そのビューがあなたのレイアウト 可視性を非表示に設定し、公開の開始時に可視性を設定します。
view.setVisibility(View.VISIBLE);
お役に立てば幸いです。