我需要编写自定义视图,它将从右到左平滑滚动几个文本。
好吧,我已经写过了,但是滚动看起来不够流畅。这是代码:
private Runnable tick = new Runnable() {
@Override
public void run() {
anim();
invalidate();
handler.postDelayed(this, 10);
}
};
private void anim()
{
long time = System.currentTimeMillis();
long dTime = time - animStartTime;
animStartTime = time;
offsetX-=(float)(dTime*ANIM_SPEED);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(rates!=null)
{
for(int i=0; i<rates.length; i++)
{
Rate r = rates[i];
float x = ((i*rateWidth) + offsetX + r.offsetX);
float y = 120;
if(x>w)
{
continue;
}
else if(x+rateWidth<0)
{
r.offsetX += rates.length*rateWidth;
continue;
}
canvas.drawText(r.currency, x, y, paintBlack);
}
}
}
它不是很复杂,但是滚动看起来一点也不流畅,并且不时抖动。在绘图期间我没有进行任何分配。
有什么想法可以改进吗?