Intereting Posts
Текстовое изображение в режиме воспроизведения TextureView становится черным после onPause Альтернатива MediaStore.Playlists.Members.moveItem Не удается отладить, фатальный сигнал 6 (SIGABRT) при 0x00007c37 (код = -6) ClassCastException в support-library-v7, используя версию 21 Подсчитайте строки кода во всех классах Java в Android Studio Android admob изменить размер на пейзаж Создайте боковую панель, например браузер Dolphin или Firefox в Android Как перенести работу на передний план (верхняя часть стека)? SupportMapFragment загружается чрезвычайно медленно в первый раз, но быстро в последующих нагрузках (включая различные действия) Android, быстрый вопрос о лучших практиках NoSuchMethodError getChildFragmentManager () Скрипты обезьян-андроидов Можно ли добавлять стрелки на полилинии с помощью карт Android V2 Как установить цвет фона в макете xml? Добавление высоты / тени на панели инструментов для устройств с предварительным леоптипом

Значение Animator android

Я пытаюсь анимировать 3 изображения один за другим с помощью аниматора значений, но я не могу решить, как вызвать трех обработчиков через регулярные интервалы. Предположим, что есть 3 изображения и im, делающие три обработчика для их анимации. Но я могу Чтобы принести три изображения одновременно, но не один за другим с регулярными интервалами. Пожалуйста, помогите

Это мой UpdateListener, который я вызываю из моего обработчика

public void startAnimation_image(final ImageView aniView) { animator = ValueAnimator.ofFloat(0, .8f); animator.setDuration(Constants.ANIM_DURATION); animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { int Low = 10; int High = width-150; int R = (int) ((Math.random() * (High - Low)) + Low); @Override public void onAnimationUpdate(ValueAnimator animation) { float value = ((Float) (animation.getAnimatedValue())).floatValue(); aniView.setTranslationX(R); Log.e("mscale",150*mScale +""); Log.e("value is", value+""); aniView.setTranslationY((mDisplaySize.bottom + (150*mScale))*value); x_point = aniView.getTranslationX(); y_point = aniView.getTranslationY(); } }); animator.addListener(new AnimatorListener() { @Override public void onAnimationStart(Animator arg0) { } @Override public void onAnimationRepeat(Animator arg0) { } @Override public void onAnimationEnd(Animator arg0) { startAnimation(); } @Override public void onAnimationCancel(Animator arg0) { } }); animator.start(); } 

Это один из моих обработчиков

 @Override public void handleMessage(Message msg) { super.handleMessage(msg); //int viewId = new Random().nextInt(STARS.length); id = getApplicationContext().getResources().getIdentifier(STARS[0], "drawable", getApplicationContext().getPackageName()); inflate = LayoutInflater.from(StarsActivity2.this); img[0].setVisibility(ImageView.VISIBLE); img[0].setImageResource(id); mAllImageViews.add(img[0]); LayoutParams animationLayout = (LayoutParams) img[0].getLayoutParams(); img[0].setLayoutParams(animationLayout); Log.e("mHandler",img[0]+ ""); startAnimation_image(img[0]); } }; 

Есть similaarly три обработчика и три обновления слушателей .. Пожалуйста, помогите …

Вы можете задержать анимацию offset ms путем вызова

 animation.setStartOffset(offset); 

Итак, для трех изображений с длительностью ANIM_DURATION вы можете использовать следующие значения для их последовательного запуска (возможно, передав их как параметр startAnimation_image() )

 // note: this is for illustrative purposes. You should put this in a loop int firstOffset = 0 * ANIM_DURATION; // starts immediately int secondOffset = 1 * ANIM_DURATION; // starts after the first animation is finished int thirdOffset = 2 * ANIM_DURATION; // starts after the second animation is finished // ... and so on.