Android自定義控件——模擬拋體加速減速效果

這里主要介紹一個關(guān)于類豎直上拋運動規(guī)律效果的View,可以用于“加載中”過程動畫.

效果

View中元素分析

1.單個圓點從左邊界以一定初速度一定加速度進(jìn)入,作減速運動,在運動區(qū)域中點速度恰減為0;
2.然后以相同大小的加速度加速運動從右邊界跑出;
3.不同圓點之間存在間隔.

實現(xiàn)方式

這里涉及到基本自定義控件流程結(jié)合自定義屬性動畫來實現(xiàn).
主要看一下動畫的實現(xiàn),這里試圖模仿上拋運動效果.

  • 上拋中物體以一定速度減速上拋到最高點后速度為0,然后開始加速下落,加速和減速階段運動過程對稱.
  • 本案例與上拋運動過程相似,只是把改變了減速運動階段的位移方向,全過程保持同一個方向.
  • 設(shè)置不同圓點從左側(cè)進(jìn)入的相等時間間隔,可調(diào)節(jié)這個參數(shù)來調(diào)整圓點間距.
private void startMotion() {
animator = ValueAnimator.ofFloat(0f, 140f);
animator.setDuration(mPeriod).setRepeatCount(ValueAnimator.INFINITE);
animator.setInterpolator(new LinearInterpolator());//使用線性插值器
animator.start();
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float fraction = (float) animation.getAnimatedValue();
float t;
float cx;//當(dāng)前位移(X軸坐標(biāo))
for (int i = 0; i < mDotNum; i++) {
t = (fraction - i * timeInterval) * mPeriod / 100;//依次延遲不同小圓點的出發(fā)時間
if (t < 0) {
cx = -1;
} else if (t <= mPeriod * 0.5) {//類豎直上拋運動(恒加速度減速運動階段)
cx = (float) (v0 * t - 0.5 * a * Math.pow(t, 2.0));
} else {//類豎直上拋運動(恒加速度加速運動階段)與上拋不同的是,這里改變了位移的方向
cx = mDisplacement - (float) (v0 * t - 0.5 * a * Math.pow(t, 2.0));
}
cxArr[i] = cx;
}
invalidate();
}
}
);
}

使用

源碼:這里
引入:compile 'com.jaren.naturalloadingview:NaturalLoadingViewLib:1.0.1'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評論 25 708
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,698評論 6 30
  • 1 背景 不能只分析源碼呀,分析的同時也要整理歸納基礎(chǔ)知識,剛好有人微博私信讓全面說說Android的動畫,所以今...
    未聞椛洺閱讀 2,861評論 0 10
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,274評論 5 13
  • 圖片發(fā)自簡書App 1 這已是深秋,只有周末才有時間去公園鍛煉。七點鐘走出門,一股涼氣撲面而來,還有點模糊的頭腦一...
    解百城閱讀 796評論 0 2

友情鏈接更多精彩內(nèi)容