我目前有一個工作的Android程序,它以編程方式將視圖添加到LinearLayout。我希望這些觀點在動畫中找到,並且找不到任何好的資源來解決如何做到這一點。Android:LinearLayout addView動畫
難道有人指着我正確的方向嗎?
我目前有一個工作的Android程序,它以編程方式將視圖添加到LinearLayout。我希望這些觀點在動畫中找到,並且找不到任何好的資源來解決如何做到這一點。Android:LinearLayout addView動畫
難道有人指着我正確的方向嗎?
你可以使用ViewFlipper並從那裏設置動畫,你可以看看這個tutorial 。祝你好運。
這是一個非常古老的問題,但仍有趣:你可以使用屬性android:animateLayoutChanges="true"
例如:
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
/>
可以與Scenes and Transitions API完成。
框架給了我們三個Transition
類型開箱:Fade
,Slide
和Explode
,但你也可以創建過渡擴展Visibility
類和壓倒一切適當的方法的自定義類型。
所以,有任何ViewGroup
,我們可以這樣做:
viewGroup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
Transition t = null;
if (i == 1) {
t = new Fade();
} else if (i == 2) {
t = new Slide(Gravity.BOTTOM);
} else if (i == 3) {
t = TransitionInflater.from(v.getContext())
.inflateTransition(R.transition.my_transition);
}
Button button = new Button(v.getContext());
button.setText("My button " + i++);
TransitionManager.beginDelayedTransition(customLayout, t);
viewGroup.addView(button);
}
});
凡my_transition.xml是以下幾點:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:interpolator="@android:interpolator/fast_out_slow_in">
<fade/>
<slide android:slideEdge="bottom"/>
</transitionSet>
我們會得到這樣的結果:
請注意,我們必須在對佈局進行任何更改之前執行TransitionManager.beginDelayedTransition()
(即在調用addView()
之前)。然後框架將照顧其餘的。
也有另一種超負荷TransitionManager.beginDelayedTransition(ViewGroup)
,在這裏你不需要指定要應用什麼確切的過渡,並且系統將執行AutoTransition
動畫,基本上會褪色,改變動畫視圖的邊界。
更新總結從談話中的註釋框架的TransitionManager
可從API 19,並從API 21完全支持
(說全我的意思是如Slide
轉變可從API 21)。雖然有support package available,但它不支持所有功能。或者,您也可以移動到TransitionsEverywhere庫,該庫將所有內容都支持到Android 4.0。
嘗試
1.添加以線性佈局
linearLayout.addView(customView);
2。添加slide_up.xml
到res/anim
文件夾
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<translate
android:duration="500"
android:fromYDelta="100%"
android:toYDelta="0%" />
</set>
應用動畫如果要動畫意見逐一添加視圖
Animation animation = AnimationUtils.loadAnimation(context, R.anim.slide_up);
customView.startAnimation(animation);
之後,然後用以下行
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
linearLayout.addView(customView);
Animation animation = AnimationUtils.loadAnimation(context, R.anim.slide_up);
customView.startAnimation(animation);
}
}, 500);
我想當我像這樣添加'for(int i = 0; i
2017-04-26 10:12:49
在'for'循環之前放置'TransitionManager.beginDelayedTransition()'。 – azizbekian 2017-04-26 10:15:19
我想添加my_transition.xml我得到** @ android:interpolator/fast_out_slow_in需要API level 21(當前最小值爲15)** on android:interpolator =「@ android:interpolator/fast_out_slow_in」 – 2017-04-26 10:20:16