我知道阴凉库做在CSS一些很酷的动画对象,http://daneden.github.io/animate.css/的Android库轻松地创建很酷的动画
是否有任何的Android类似的事情?我的意思是,任何图书馆都可以轻松制作动画。
谢谢
我知道阴凉库做在CSS一些很酷的动画对象,http://daneden.github.io/animate.css/的Android库轻松地创建很酷的动画
是否有任何的Android类似的事情?我的意思是,任何图书馆都可以轻松制作动画。
谢谢
创建动画本身非常简单。你不需要一个库。有哪些适合大多数情况下,还有其他的方法来制作动画的东西两个选项,但这些是最重要的:
没有多大的差别在这两者之间就如何使用它们而言,但它们可以做不同的事情。
1)查看动画:
对于观看动画你得先写一个动画XML。其中描述了动画的外观和持续时间。当然,您也可以通过编程方式创建这些动画,但在大多数情况下,使用xml创建动画效果更好。例如,这里有两个动画xmls,一个从顶部向下滑动视图,另一个从视图中淡出视图。
滑下:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="-100%"
android:toYDelta="0%"
android:duration="1000"/>
</set>
淡出:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="1"
android:toAlpha="0"
android:duration="700"/>
</set>
比你要加载这样的动画:
Animation slide = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_down);
然后你就可以将动画您如下所示:
linearLayout.startAnimation(slide);
您可以将这些动画合并到一个xml中,只需放置多个translate/alpha/etc。标记到一个集合标记中。
android:startOffset="500"
为了完整:这是你将如何创建编程淡出动画:您可以通过设置startOffset
这样拖延的集合中的一个动画开始
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setStartOffset(offset);
fadeOut.setDuration(duration);
2)对象动画器:
对象动画器可以再次在代码和xml中创建,但在大多数情况下,xml更可取。这是一个淡出动画将会是什么样的对象动画:
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:propertyName="alpha"
android:valueType="floatType"
android:valueFrom="1.0"
android:valueTo="0.0"
android:duration="1000" />
对象的动画看起来可能更复杂一些的开始,但没有太多的XML的差别。可以说ObjectAnimators比View Animations更适合的一件事是ObjectAnimators可能更强大,因为它们可以为任何对象的任何属性制作几乎任何动画。例如围绕它的Y轴并没有多少人知道,这样的事情,甚至有可能下面的动画将旋转视图:
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="rotationY"
android:valueType="floatType"
android:valueFrom="0.0"
android:valueTo="360.0"
android:duration="5000"/>
这就是你如何创建编程相同的动画:
ObjectAnimator animation = ObjectAnimator.ofFloat(view, "rotationY", 0.0f, 360f);
animation.setDuration(5000);
animation.setInterpolator(new AccelerateDecelerateInterpolator());
animation.start();
结果看起来是这样的:
您可以从XML应用的ObjectAnimator动画这样的:
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(getActivity(), R.animator.rotate_axis_y);
set.setTarget(targetView);
set.start();
这是一个辉煌的答案,明确和重点。谢谢! – HenriqueMS
链接到github。
您可以使用Bodybovin解析导出为JSON的Adobe After Effects动画。
添加依赖
compile 'com.airbnb.android:lottie:2.1.0'
JSON文件添加到资产,并以此为如下
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/animation_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:lottie_fileName="enter the json file name with .json extension"
app:lottie_loop="true"
app:lottie_autoPlay="true" />
我已经在时间的东西,你可以看它:https://github.com/yayaa/ProgressedView 但我没有使用9oldandroids,虽然:) – yahya