我知道陰涼庫做在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