Как загрузить растровое изображение напрямую с помощью библиотеки picasso, как показано ниже.

Picasso.with(context).load("url").into(imageView);

Здесь вместо url я хочу растровое изображение, как я могу достичь этого. как ниже -

Picasso.with(context).load(bitmap).into(imageView);

Ответ 1

Это должно сработать для вас. Используйте возвращенный URI с Picasso.

(взято из: есть ли возможность получить uri растрового изображения без сохранения его на SDCard?)

public Uri getImageUri(Context inContext, Bitmap inImage) {
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
    String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
    return Uri.parse(path);
}

Ответ 2

Вы используете старую версию Пикассо.

Обновите версию в вашем файле Gradle:

implementation 'com.squareup.picasso:picasso:2.71828'

Джава:

Picasso.get().load(R.drawable.landing_screen).into(imageView1);
Picasso.get().load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.get().load(new File(...)).into(imageView3);

Смотрите подробности на сайте Пикассо

Ответ 3

Мой котлин раствор

создать растровое изображение из данных

    val inputStream = getContentResolver().openInputStream(data.data)
    val bitmap = BitmapFactory.decodeStream(inputStream)
    val stream = ByteArrayOutputStream()
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream)

ВАЖНО: если вам не нужно хранить изображение, вы можете избежать Picasso и загрузить изображение сразу

    imageView.setImageBitmap(bitmap)

в противном случае сохраните файл и загрузите его с помощью Picasso

    val jpegData = stream.toByteArray()

    val file = File(cacheDir, "filename.jpg")
    file.createNewFile()

    val fileOS = FileOutputStream(file)
    fileOS.write(jpegData)
    fileOS.flush()
    fileOS.close()

    Picasso.get().load(Uri.parse(file.path)).into(imageView)