如何在API lvl 19上的两个不同视图上启动两个动画

时间:2017-02-09 12:20:18

标签: android animation view

我有一个工作示例,可以同时为两个不同的动画制作动画。 但由于某些原因,这对Android 4.4.2(API级别19)设备无效。

动画发生了,但是没有应用setFillAfter,最后,视图返回原点。

以下是代码:

// Creating an animation set
AnimationSet animationSet = new AnimationSet(true);
animationSet.setFillAfter(true);

// Creating a Scale Animation
ScaleAnimation scaleAnimation = new ScaleAnimation(
zoomPercent, newZoom, zoomPercent, newZoom, // Start and end values for the Y axis scaling
Animation.RELATIVE_TO_SELF, zoomPointX, // Pivot point of X scaling
Animation.RELATIVE_TO_SELF, zoomPointY); // Pivot point of Y scaling

// Creating a Translate animation
TranslateAnimation anim = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, translateX,
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, translateY,
Animation.RELATIVE_TO_SELF, 0f);

//Adding the animations to the set
animationSet.addAnimation(anim);
animationSet.addAnimation(scaleAnimation);
animationSet.setDuration(duration);

// Creating Alpha animation
AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f,0f);
alphaAnimation.setFillAfter(true);    
alphaAnimation.setDuration(duration);

relativeLayout.startAnimation(animationSet); //id="@+id/relative_layout"
darkOverlay.startAnimation(alphaAnimation); //darkOverlay is DarkOverlayView extends View, can be seen below

我动画的布局看起来像这样

<RelativeLayout
            android:id="@+id/relative_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ViewPager
                android:id="@+id/view_pager"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior" />

            <com.example.DarkOverlayView
                android:id="@+id/dark_overlay_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
</RelativeLayout>

任何建议都会有所帮助。到目前为止,我已经在两个集合上尝试过.setFillEnabled(true)但没有效果。 在调用第一个动画的onAnimationStart回调之后,我也尝试启动第二个动画。 这也没有结果。

更新 我发现了问题,当动画仍在运行时,我正在使用Animation.getTansformation(long currentTime, Transformation outTransformation),并且在动画结束后由于某种原因,结果未应用。

0 个答案:

没有答案