Я использую AnimationSet для создания многих анимаций Переводчика. В этом примере я хочу переместить ImageView от 0 до 700 (вне экрана) и от -700 до 0 (вид переместится в крайнее правое положение и снова войдет в крайнее левое положение). Я использую этот код:
AnimationSet set = new AnimationSet(true);
set.setInterpolator(new AccelerateDecelerateInterpolator());
set.setFillEnabled(true);
if(traject!=null){
TranslateAnimation tmpAnim = null;
set.setDuration(duration);
int d = traject.size()!=0 ? duration/traject.size() : duration;
for(int i =0; i<traject.size();i++){
tmpAnim = new TranslateAnimation( traject.get(i).getStartX(),
traject.get(i).getEndX(),
traject.get(i).getStartY(),
traject.get(i).getEndY() );
tmpAnim.setDuration(d);
tmpAnim.setFillAfter(true);
tmpAnim.setStartOffset(d*i);
set.addAnimation(tmpAnim);
}
}
- traject - это массив, содержащий все начальные и конечные точки TranslateAnimation
Но в моем тестовом примере анимация идет от -700 до 700. Я попытался переключить порядок TranslateAnimations, используя setStartTime () вместо setStartOffset (), пропустив вызов setStartOffset (), результат тот же. Ты хоть представляешь, что мне не хватает?