Android从View.GONE的可见性开始状态放大动画

Android从View.GONE的可见性开始状态放大动画,android,animation,view,visibility,Android,Animation,View,Visibility,我有一个包含ImageView和进度条的RelativeLayout。 RelativeLayout上的起始状态为查看。已消失。 使用动画库(尝试了几个,所以问题不在于libs), 我正在尝试放大RelativeLayout loader容器。 我已经尝试了一段时间来搜索我的问题,但找不到任何相关的东西,所以我一定是做错了什么,我将感谢您的帮助 以下是我所有尝试及其结果的列表: 当视图开始状态为view.VISIBLE时,就在动画开始之前,加载程序以其全尺寸显示,然后动画开始放大(因此,我尝试

我有一个包含ImageView和进度条的RelativeLayout。 RelativeLayout上的起始状态为查看。已消失。 使用动画库(尝试了几个,所以问题不在于libs), 我正在尝试放大RelativeLayout loader容器。 我已经尝试了一段时间来搜索我的问题,但找不到任何相关的东西,所以我一定是做错了什么,我将感谢您的帮助

以下是我所有尝试及其结果的列表:

  • 当视图开始状态为
    view.VISIBLE
    时,就在动画开始之前,加载程序以其全尺寸显示,然后动画开始放大(因此,我尝试了
    view.GONE
    的开始状态)
  • 当视图开始状态为view.GONE时,当动画开始时,在执行动画时会在开始时闪烁(我假设这是因为可见性改变。当可见性没有改变时,我不会遇到此问题)
  • 我试着设置一些线程中提到的安卓:animateLayoutChanges=“true”,但没有成功
动画的代码是:

public void zoomInAnimation(final View view) {

    ViewAnimator
            .animate(view)
            .onStart(new AnimationListener.Start() {
                @Override
                public void onStart()
                {
                    view.setVisibility(View.VISIBLE);
                }
            })
            .duration(400)
            .zoomIn()
            .start();

}
我的布局如下所示:

<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:animateLayoutChanges="true"
            android:background="@color/transparent_black"
            tools:context="il.co.cambium.sport5radio.fragments.MediaPlayerFragment">

<!-- Loader container -->
<RelativeLayout
    android:id="@+id/mediaPlayerLoader"
    android:layout_width="124dp"
    android:layout_height="124dp"
    android:layout_centerInParent="true"
    android:visibility="gone">

    <!-- Circular image view -->
    <com.mikhaellopez.circularimageview.CircularImageView
        android:layout_width="122dp"
        android:layout_height="122dp"
        android:layout_centerInParent="true"
        android:src="@drawable/icon"
        app:civ_border="true"/>

    <!-- Loader-->
    <fr.castorflex.android.circularprogressbar.CircularProgressBar
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:indeterminate="true"
        app:cpb_color="@color/colorPrimary"
        app:cpb_max_sweep_angle="300"
        app:cpb_min_sweep_angle="10"
        app:cpb_stroke_width="5dp"/>

</RelativeLayout>

<!-- Video display -->
<SurfaceView
    android:id="@+id/mediaPlayerSurfaceView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:visibility="invisible"/>

<!-- Controls -->
<RelativeLayout
    android:id="@+id/controlsRootView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="invisible">

    <!-- Top Bar -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_alignParentTop="true"
        android:background="@color/transparent_black"
        android:orientation="horizontal">

        <!-- Minimize button + collapsed play button -->
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <!-- Close icon -->
            <ImageButton
                android:id="@+id/videoBackBtn"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="5dp"
                android:background="@drawable/round_ripple_effect_player"
                android:scaleType="centerInside"
                android:src="@mipmap/player_ic_minimize"
                android:tint="@color/colorPrimaryDark"/>

            <!-- Button play -->
            <ImageButton
                android:id="@+id/collapsedPlayPauseBtn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:background="@drawable/round_ripple_effect_player"
                android:padding="5dp"
                android:scaleType="centerInside"
                android:src="@drawable/icon_pause"
                android:visibility="gone"/>

        </LinearLayout>

        <!-- Title -->
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="24dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="9dp"
            android:layout_weight="1"
            android:focusable="true"
            android:focusableInTouchMode="true">

            <TextView
                android:id="@+id/videoPlayerTitle"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:ellipsize="marquee"
                android:fadingEdge="horizontal"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:marqueeRepeatLimit="marquee_forever"
                android:scrollHorizontally="true"
                android:singleLine="true"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@android:color/black"
                android:textSize="20dp"/>

        </LinearLayout>

        <!-- Live dot -->
        <ImageView
            android:id="@+id/fragmentMediaPlayerBlinkingCircle"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:layout_gravity="center_vertical"
            android:scaleType="centerInside"
            android:src="@drawable/ic_circle"
            android:visibility="gone"/>

        <!-- Poster -->
        <ImageView
            android:id="@+id/mediaImage"
            android:layout_width="75dp"
            android:layout_height="48dp"
            android:scaleType="centerCrop"
            android:src="@drawable/icon"/>

    </LinearLayout>

    <!-- Bottom controls -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@color/transparent_black"
        android:layoutDirection="ltr"
        android:orientation="vertical"
        android:paddingBottom="4dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal">

            <!--<ImageButton
                android:id="@+id/media_prev"
                style="@android:style/MediaButton.Previous"/>-->

            <!--<ImageButton
                android:id="@+id/media_rew"
                style="@android:style/MediaButton.Rew"/>-->

            <!--<ImageButton
            android:id="@+id/media_play"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@mipmap/notification_ic_play"
            android:background="@drawable/ripple_effect_player"
            android:visibility="gone"/>
            style="@android:style/MediaButton.Play"-->

            <ImageButton
                android:id="@+id/media_play_pause"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:padding="10dp"
                android:background="@drawable/round_ripple_effect_player"
                android:src="@drawable/icon_pause"/>
            <!--style="@android:style/MediaButton.Pause"-->

            <!--<ImageButton
            android:id="@+id/media_ffwd"
            style="@android:style/MediaButton.Ffwd"/>-->

            <!-- <ImageButton
                 android:id="@+id/media_next"
                 style="@android:style/MediaButton.Next"/>-->

        </LinearLayout>

        <LinearLayout
            android:id="@+id/fragmentMediaPlayerProgressContainer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/media_position"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:includeFontPadding="false"
                android:paddingLeft="4dp"
                android:paddingRight="4dp"
                android:textColor="@color/black_semi_transparent"
                android:textSize="14sp"
                android:textStyle="bold"/>

            <SeekBar
                android:id="@+id/media_progress"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:padding="4dp"
                android:theme="@style/MyProgressBar"/>

            <TextView
                android:id="@+id/media_duration"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:includeFontPadding="false"
                android:paddingLeft="4dp"
                android:paddingRight="4dp"
                android:textColor="@color/black_semi_transparent"
                android:textSize="14sp"
                android:textStyle="bold"/>

        </LinearLayout>

    </LinearLayout>

</RelativeLayout>

非常感谢你的帮助。
谢谢

@yash786图像的开始状态没有问题。请尝试实现该代码。您将看到圆形进度图标,最初在图像开始可见时,可见性消失在图像的开始状态。一旦图像开始可见,圆形进度图标将消失gone@yash786即使初始状态是不可见的,我还是眨眼。任何方式都可以将其更改为“消失”。。。