16.Animations(MPAndroidChart中文翻譯)

目錄

第8節(jié).Setting Colors(MPAndroidChart中文翻譯)
第9節(jié).Formatting Data Values (ValueFormatter)(MPAndroidChart中文翻譯)
第10節(jié)-Formatting Axis Values (AxisValueFormatter)(MPAndroidChart中文翻譯)
第11節(jié).General Settings & Styling(MPAndroidChart中文翻譯)
第12節(jié).Specific Settings & Styling(MPAndroidChart中文翻譯)
第13節(jié).Legend(MPAndroidChart中文翻譯)
第14節(jié).Dynamic & Realtime Data(MPAndroidChart中文翻譯)
第15節(jié). Modifying the Viewport(MPAndroidChart中文翻譯)
第16節(jié).Animations(MPAndroidChart中文翻譯)
第17節(jié). MarkerView (Popup View)(MPAndroidChart中文翻譯)
第18節(jié). The ChartData class(MPAndroidChart中文翻譯)
第19節(jié). ChartData subclasses(MPAndroidChart中文翻譯)
第20節(jié). The DataSet class (general DataSet styling)(MPAndroidChart中文翻譯)
第21節(jié). DataSet subclasses (specific DataSet styling)(MPAndroidChart中文翻譯)
第22節(jié). The ViewPortHandler(MPAndroidChart中文翻譯)
第23節(jié). Customizing the Fill-Line-Position (FillFormatter)(MPAndroidChart中文翻譯)
第24節(jié). Proguard(MPAndroidChart中文翻譯)
第25節(jié). Realm.io mobile database(MPAndroidChart中文翻譯)
第26節(jié). Creating your own (custom) DataSets(MPAndroidChart中文翻譯)
第27節(jié). Miscellaneous (more useful stuff)(MPAndroidChart中文翻譯)

注意:動(dòng)畫(huà)僅支持API 11(Android3.0.x)及以上版本.
在低版本設(shè)備上,動(dòng)畫(huà)不會(huì)執(zhí)行,但程序不會(huì)崩潰.

所有類型的圖表都支持動(dòng)畫(huà),可以用一種看起來(lái)非常棒的方式來(lái)創(chuàng)建和構(gòu)建圖表.存在三種不同類型的動(dòng)畫(huà)方法,分為xy,x和y.

  • animateX(int durationMillis): 圖表x軸上的值顯示動(dòng)畫(huà),意思是圖表將會(huì)從左到右按指定的時(shí)間進(jìn)行構(gòu)建.
  • animateY(int durationMillis): 圖表y軸上的值顯示動(dòng)畫(huà),意思是圖表將會(huì)從下到上按指定的時(shí)間進(jìn)行構(gòu)建.
  • animateXY(int xDuration, int yDuration): 同時(shí)執(zhí)行animateX(...)和animateY(..,)方法的動(dòng)畫(huà).
mChart.animateX(3000); // animate horizontal 3000 milliseconds
// or:
mChart.animateY(3000); // animate vertical 3000 milliseconds
// or:
mChart.animateXY(3000, 3000); // animate horizontal and vertical 3000 milliseconds

如果animate(...)(所有類型)被調(diào)用了,不需要額外調(diào)用invalidate()方法來(lái)刷新圖表.

Animation easing

這個(gè)依賴庫(kù)允許你將非常簡(jiǎn)單的功能應(yīng)用到你的動(dòng)畫(huà)中.你可以在預(yù)定義的Easing.EasingOption:枚舉中進(jìn)行選擇:

  public enum EasingOption {
      Linear,
      EaseInQuad,
      EaseOutQuad,
      EaseInOutQuad,
      EaseInCubic,
      EaseOutCubic,
      EaseInOutCubic,
      EaseInQuart,
      EaseOutQuart,
      EaseInOutQuart,
      EaseInSine,
      EaseOutSine,
      EaseInOutSine,
      EaseInExpo,
      EaseOutExpo,
      EaseInOutExpo,
      EaseInCirc,
      EaseOutCirc,
      EaseInOutCirc,
      EaseInElastic,
      EaseOutElastic,
      EaseInOutElastic,
      EaseInBack,
      EaseOutBack,
      EaseInOutBack,
      EaseInBounce,
      EaseOutBounce,
      EaseInOutBounce,
  }

這里主要有兩種方式來(lái)進(jìn)行緩動(dòng)動(dòng)畫(huà):
1,預(yù)定義的easing options:(可以運(yùn)行在任何Android版本中)

public void animateY(int durationmillis, Easing.EasingOption option); 

用預(yù)定義的easing option中的緩動(dòng)動(dòng)畫(huà):

// animate both axes with easing
mChart.animateY(3000, Easing.EasingOption.EaseOutBack); 

當(dāng)你希望你的代碼可以在Android3.0(API 11)以下版本運(yùn)行時(shí),一定要使用預(yù)定義Easing.EasingOption中的緩動(dòng)動(dòng)畫(huà).

2,自定義緩動(dòng)功能(自定義的緩動(dòng)功能在Android3.0以下會(huì)崩潰)

public void animateY(int durationmillis, EasingFunction function); 

通過(guò)創(chuàng)建你自己的緩動(dòng)功能類并實(shí)現(xiàn)EasingFunction接口,來(lái)創(chuàng)建你自己的緩動(dòng)功能:

/**
 * Interface for creating custom made easing functions. 
 */
 public interface EasingFunction {
    /**
     * Called everytime the animation is updated.
     * @param input - the time passed since the animation started (value between 0 and 1)
     */
     public float getInterpolation(float input);
 }

然后用下面方式調(diào)用(注意,Android3.0以下不會(huì)執(zhí)行,并使程序崩潰):

// animate both axes with easing
mChart.animateY(3000, new MyEasingFunction()); 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容