web-dev-qa-db-ja.com

Picassoファイルシステムから画像を読み込む

Picassoライブラリを使用して、ファイルシステムから画像をロードできますか?

startActivityForResultを使用して、ユーザーがギャラリーから写真を選択し、選択した画像を表示するようにします。

イメージファイルシステムUriを取得するための作業コードは既にありますが、Picasso.load()メソッドを取得できません。

73
edrian

もちろんできます。実際にはかなり簡単です:

File f = new File("path-to-file/file.png")

または

File f = new File(uri)

Picasso.with(getActivity()).load(f).into(imageView);

また

Picasso.with(getActivity()).load(uri).into(imageView);

働く

143
patrickf

はい、できます。

試してください:

Picasso.with(context).load(new File(YOUR_FILE_PATH)).into(imageView);

編集

代わりに.load(YOUR_URI)を呼び出すこともできます。

26
egfconnor

ソースコードを見ると、file:文字列プレフィックスをイメージパスに追加して、ファイルシステムからイメージをロードできることもわかりました。例えば:

file:path/to/your/image

また、startActivityForResultを使用すると、次のような結果が得られます。

Uri imageContent = data.getData();

次に、Cursorを作成してイメージパスを照会する必要なく、Picasso.with(getContext()).load(imageContent.toString).into(imageView);を直接呼び出すことができます。

22
edrian

これを試して:

Picasso.with(context)
.load("file://"+path) // Add this
.config(Bitmap.Config.RGB_565)
.fit().centerCrop()
.into(imageView);

私にぴったりです。

9
Awesome Code
> 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);
6
Tarun Umath

基本的に、Contextimage´s path、およびImageView Containerの3つのものが必要です。

Picasso.with(context).load("/files/my_image.jpg").into(myImageView);

しかし、より多くのオプションを利用できます:

  .resize(20, 20)
  .centerCrop()
  .placeholder(R.drawable.user_placeholder)
  .error(R.drawable.user_placeholder_error)

等...

詳細:http://square.github.io/picasso/

2
Jorgesys