رسوم متحركة قابلة للرسوم المتحركة لا تعمل بشكل صحيح

0

أريد أن تشغيل AnimatedVectorDrawable الرسوم المتحركة في حلقة لا نهائية.

final AnimatedVectorDrawableCompat avd = AnimatedVectorDrawableCompat.create(this, R.drawable.avd_anim_happy);
    mImageView.setImageDrawable(avd);


    // animation on infinite loop
    avd.registerAnimationCallback(new Animatable2Compat.AnimationCallback() {

        @Override
        public void onAnimationStart(Drawable drawable) {
            super.onAnimationStart(drawable);
            Log.e(TAG, "onAnimationStart() called");
        }

        @Override
        public void onAnimationEnd(Drawable drawable) {
            Log.e(TAG, "onAnimationEnd() called");
            avd.start();
        }
    });

    avd.start();
}

هذا يعمل بشكل جيد عندما اختبرت مع جهاز نوجا . ولكن عندما أحاول تشغيل هذا على جهاز KitKat ، يتم استدعاء رد الاتصال ولكن لا يتم تشغيل الرسوم المتحركة مرة أخرى. لا توجد رسالة سجل "onAnimationStart () تسمى". ولكن عند القيام بما يلي.

        @Override
        public void onAnimationEnd(Drawable drawable) {
            Log.e(TAG, "onAnimationEnd() called");
            if (avd.isRunning()) {
                Log.e(TAG, "avd running!!");
                avd.stop();
            }
            avd.start();
        }

onAnimationEnd() و onAnimationStart() يتم استدعاؤها مرارا وتكرارا. ولكن لسبب ما توقفت الرسوم المتحركة للتو بعد اللعب لمرة واحدة.

1 إجابة

0

كنت أواجه نفس المشكلة مع المنصات القديمة ، وتبين أنني أعمل حولها من خلال نشر البداية بعد نهاية الحدث.

imageView.post(new Runnable() {
                @Override
                public void run() {
                    avd.start();
                }
            });
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام