剛剛了解屬性動畫,嘗試著寫了乙個可折疊布局,正好也是專案中用到的。
先上效果圖:
使用了乙個自定義布局,很簡單,就是指明了需要改變的屬性,本例中既是布局的高度
public class foldpanellayout extends relativelayout
private void setpanelheight(int panelheight)
private int getpanelheight()
}
activity**
public class mainactivity extends activity implements onclicklistener
private void initviews()
private void setdata()
lvtoday.setadapter(new arrayadapter(this,
android.r.layout.******_list_item_1, toadys));
for (int i = 0; i < yestodays.length; i++)
lvyestoday.setadapter(new arrayadapter(this,
android.r.layout.******_list_item_1, yestodays));
for (int i = 0; i < weeks.length; i++)
lvweek.setadapter(new arrayadapter(this,
android.r.layout.******_list_item_1, weeks));
} @override
public void onclick(view v)
break;
} }/**
* 摺疊
* @param expandflag
*/private void collapselayout(int expandflag)
/*** 展開
* @param expandflag
*/private void expandlayout(int expandflag)
private class animupdatelistener implements animatorupdatelistener
@override
public void onanimationupdate(valueanimator arg0)
} private void startanimation(int expandflag, int start, int end)
objectanimator anim = objectanimator.ofint(expandvp, anim_property,
start, end);
anim.setduration(anim_duration);
anim.start();
if (end > start)
}}
算是初步實現效果,不過還是覺得這樣寫的話在activity中的**有點多了,應該放在自定義布局裡面,再定義展開和摺疊的監聽介面在activity裡面呼叫。 android屬性動畫
一 屬性動畫的工作原理,主要有三個步驟 1 計算時間流逝。android動畫系統呼叫,用0 1代表時間的流逝。0表示經過0 的時間,1表示經過100 的時間。2 根據timeinterpolator計算出乙個差值因素。timeinterpolator以第1步流逝的時間作為引數,根據運動規則得出另乙個...
android 屬性動畫
package com.example.objectanimator import android.animation.animator import android.animation.animatorlisteneradapter import android.animation.animato...
Android屬性動畫
android的動畫可以分為三種 補間動畫,幀動畫,屬性動畫。現在很多書籍種大部分都是簡單的描述補間動畫和幀動畫,屬性動畫的概念卻沒有提到,所以今天就全面的分析一下屬性動畫。屬性動畫實際操作的是view的屬性值,因此可以很靈活的實現各種效果,而不侷限於之前的幾種動畫。objectanimator是我...