как показать прогрус-бар перед загрузкой изображения в Picasso.а затем, если изображение загружено, тогда начните рассказы в Android - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю над проектом по созданию историй, таких как WhatsApp или Instagram.

Мы используем библиотеку Github

Наше изображение загружено из базы FireBase.

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

@Override
    public void onFirebaseLoadSuccess(final List<Movie> movieList) {
        storiesProgressView.setStoriesCount(movieList.size());
        storiesProgressView.setStoryDuration(1500L);



    Picasso.get().load(movieList.get(counter).getImage()).into(imageView, new Callback() {
        @Override
        public void onSuccess() {
            progressBar.setVisibility(View.GONE);
            storiesProgressView.startStories();
        }

        @Override
        public void onError(Exception e) {

        }
    });

    storiesProgressView.setStoriesListener(new StoriesProgressView.StoriesListener() {
        @Override
        public void onNext() {

            if(counter < movieList.size()){
                counter++;
                Picasso.get().load(movieList.get(counter).getImage()).into(imageView);
            }
        }

        @Override
        public void onPrev() {

            if(counter > 0){
                counter--;
                Picasso.get().load(movieList.get(counter).getImage()).into(imageView);
            }
        }


        @Override
        public void onComplete() {
            counter = 0;
            Toast.makeText(MainActivity.this,"Completed!",Toast.LENGTH_LONG).show();
            finish();
        }
    });
}

1 Ответ

0 голосов
/ 28 февраля 2019

Picasso не имеет функции для проверки при запуске загрузки, поэтому я настоятельно рекомендую вам использовать Glide вместо Picasso.

Здесь вы можете отобразить индикатор выполнения, когда загрузка изображения начинается с помощью функции onLoadStarted ():

  Glide.with(this).load(movieList.get(counter).getImage()).into(new Target<GlideDrawable>() {
        @Override
        public void onStart() {

        }

        @Override
        public void onStop() {

        }

        @Override
        public void onDestroy() {

        }

        @Override
        public void onLoadStarted(Drawable placeholder) {
            progressBar.setVisibility(View.VISIBLE);
        }

        @Override
        public void onLoadFailed(Exception e, Drawable errorDrawable) {

        }
        @Override
        public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
            progressBar.setVisibility(View.GONE);
            imageView.setImageDrawable(resource);
            storiesProgressView.startStories();

        }

        @Override
        public void onLoadCleared(Drawable placeholder) {

        }

        @Override
        public void getSize(SizeReadyCallback cb) {

        }

        @Override
        public void setRequest(Request request) {

        }

        @Override
        public Request getRequest() {
            return null;
        }

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...