web-dev-qa-db-ja.com

次のようにピカソライブラリでビットマップを直接ロードする方法

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

ここでは、URLの代わりにビットマップが必要です。以下のように

Picasso.with(context).load(bitmap).into(imageView);
20
Sachin Mandhare

これでうまくいくはずです。返されたURIをピカソで使用します。

(取得元: sdcardに保存せずにビットマップのURIを取得するためにそこにありますか?

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);
}
13
Vit

My Kotlinソリューション

データからビットマップを作成する

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

重要:保存する必要がない場合ピカソを回避してすぐに画像を読み込むことができる画像

    imageView.setImageBitmap(bitmap)

それ以外の場合はファイルを保存し、ピカソでロードします

    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)
2
ivoroto

古いバージョンのピカソを使用しています。

Gradleファイルのバージョンを更新します。

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

Java:

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);

ピカソのウェブサイトで詳細をご覧ください

0
Gobu CSG