Вопрос по android, android-animation – Как добавить изображение в ImageView при загрузке с URL

5

Я хотел бы применить анимацию постепенного изменения изображения к ImageView, чтобы создать эффект, при котором изображение, загружаемое из URL-адреса, исчезает после завершения загрузки.

Я знаю, как загрузить изображение из URL в ImageView, как вэтот ответи я знаю, как применить постепенную анимацию к imageViewкак здесь.

Эта попытка

Drawable d = ImageUtils.fetchDrawable("the url");
imageView.setImageDrawable(d);
imageView.startAnimation(fadeInAnimation);

приводит к эффекту мерцания (видеть, не видеть, исчезать, чтобы видеть). Изменение порядка двух последних строк также приводит к миганию.

Я гуглил и искал SO для решения в форме обратного вызова / слушателя - что-то вроде этого:

imageView.setOnLoadCompleteListener...

зарегистрировать событие завершения загрузки в ImageView, но я не нашел ничего подобного.

Буду благодарен за любые указания на решение о том, как реализовать этот эффект.

Ваш Ответ

2   ответа
2

ImageView видимость дляINVISIBLE или жеGONE задаватьsetAnimationListener на вашей анимации. и когдаonAnimationEnd  изменить видимостьImageView.

fadeInAnimation.setAnimationListener(new AnimationListener() {
        @Override
        public void onAnimationEnd(Animation arg0) {

           // let make your image visible


        }

        @Override
        public void onAnimationRepeat(Animation animation) {}
        @Override
        public void onAnimationStart(Animation animation) {}
    });
Error: User Rate Limit Exceeded Gunnar Karlsson
31

TransitionDrawable, простой код следующим образом:

        // Transition drawable with a transparent drwabale and the final bitmap
        final TransitionDrawable td =
                new TransitionDrawable(new Drawable[] {
                        new ColorDrawable(Color.TRANSPARENT),
                        new BitmapDrawable(mResources, bitmap)
                });
        // Set background to loading bitmap
        imageView.setBackgroundDrawable(
                new BitmapDrawable(mResources, mLoadingBitmap));

        imageView.setImageDrawable(td);
        td.startTransition(FADE_IN_TIME);
Error: User Rate Limit Exceeded Gunnar Karlsson
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы