我正在编写一个包含音乐调音器的Android应用程序。一个小节在调谐器之间来回移动,以指示该人演奏音符的锐度或平坦程度。我目前用来移动栏的代码如下:
public void moveBar(int newBarPosition) {
currentlyAnimating = true;
final ImageView tuningBar = (ImageView) findViewById(R.id.tuner_bar);
final Animation barAnimation = new TranslateAnimation(currentBarPos, newBarPosition, 0, 0);
barAnimation.setFillAfter(true);
barAnimation.setDuration(50);
currentBarPos = newBarPosition;
runOnUiThread(new Runnable() {
@Override
public void run() {
try{
tuningBar.startAnimation(barAnimation);
Thread.sleep(50);
currentlyAnimating = false;
}
catch (InterruptedException e){
e.printStackTrace();
}
}
});
}
动画需要很短,因为大约每10毫秒左右就可以读取乐器声音的音高。这导致了一个非常动人的动画。
我可以在播放动画之前访问酒吧需要移动的所有点,因为调谐器正在显示录制音符的音高,所以我的问题是:无论如何我能使这个动画更流畅吗?在Android中是否有其他类型的动画更适合大量的新点,以便将drawable移动到很短的时间内?