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