использовать цель Пикассо в функции - PullRequest
0 голосов
/ 24 марта 2020

У меня есть функция, которая использует функции Пикассо, в этой функции мне нужно сохранить растровое изображение, полученное из Пикассо, чтобы сохранить его в переменную Drawable, а затем мне нужно вернуть это значение из функции

 public Drawable[] getImages(String[][] data)
{
    final Drawable[] images=new Drawable[1];

    Target target=new Target() {
        @Override
        public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
            images[0]=new BitmapDrawable(bitmap);
            Toast.makeText(ReportesG.this, "Success", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onBitmapFailed(Exception e, Drawable errorDrawable) {
            Toast.makeText(ReportesG.this, "Failed", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onPrepareLoad(Drawable placeHolderDrawable) {

        }
    };
    Picasso.Builder picassoBuilder=new Picasso.Builder(this);
    picassoBuilder.indicatorsEnabled(true);
    picassoBuilder.loggingEnabled(true);


    Picasso picasso=picassoBuilder.build();
    picasso.load("Url").into(target);

    return images;

Проблема в том, что, поскольку он выполняет работу асинхронно, он сначала возвращает переменную Drawable, а затем, когда значение уже возвращается, он извлекает изображение, но это бесполезно, потому что мне нужно, чтобы оно возвращало значение сразу после изображение уже сохранено в переменной. Есть ли способ, которым я могу этого достичь?

...