Я использую это для отображения орбиты по эллиптическому пути, но моя проблема в том, что когда изображение появляется посередине, происходит небольшое замедление!
public class morbit extends Animation {
@Override
public boolean willChangeBounds() {
return true;
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
float degg = interpolatedTime * 360;
float angleDeg = (degg) % 360;
double sino = Math.sin(degg * Math.PI / -180);
sino= Math.abs(sino);
double coso = Math.cos(degg * Math.PI / -180);
coso= Math.abs(coso);
double rrr = 40 + (sino * 150);
float angleRad = (float) Math.toRadians(angleDeg);
angleRad = angleRad;
float y = (float) (40 * Math.cos(angleRad));
float x = (float) (rrr * Math.sin(angleRad));
t.getMatrix().setTranslate((float)x, (float)y);
}
}
.
,
.
morbit an = new morbit();
an.setDuration(6000);
an.setRepeatMode(Animation.INFINITE);
an.setRepeatCount(9999);
an.setInterpolator(new LinearInterpolator());
((ImageView) findViewById(R.id.dottx)).startAnimation(an);
Я использовал LinearInterpolator
, но мне это не помогло.