ネイティブのAndroidの進行状況インジケーターを再構築し(おそらく再構築する必要さえありません)、リスト項目のアイコンとして表示したいと思います。私はこの例に従い、ネイティブのスピナーと一致しない重いパフォーマンスの食べるアニメーションに行き着きました。コードには、これらの問題を引き起こすと思われる「LinearInterpolator」があります。
今、私は独自の Interpolar を作成し、私のニーズの 1 つを満たしました。それは、ステップを 12 にクオンタイズすることです。
しかし、私はまだ大きなパフォーマンス上の問題を抱えています。UiThreadでは、データのダウンロードと解析を目的としたバックグラウンド スレッドを実行できなくなりました。リストにいくつかのスピナーを表示していることに注意してください。また、リストアダプターでインターポレーターをクラス変数として設定しようとしました。したがって、すべての listView がこの Interpolator を利用できます。
if(imageViewIcon != null) {
RotateAnimation anim = new RotateAnimation(0f, 360f, 51f, 51f);
anim.setInterpolator(new Interpolator() {
@Override
public float getInterpolation( float input ) {
return (float) Math.floor((double)input*10)/12;
}
});
// anim
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(1000);
// Start animating the image
imageViewSpinner.startAnimation(anim);
}
アップデート
最後に、私とまったく同じことを行う ProgressBarWidget を見つけました。ただし、まだパフォーマンスは高くありません。(そのほうがいいですけど)