web-dev-qa-db-ja.com

Picassoライブラリを使用してSDカードから画像を読み込む方法

sdカードからgridviewに画像を読み込む必要があります。効率のためにPicasso Libraryを使用しています

Picasso.with(activity).load(images.get(position).getDataPath())
            .resize(96, 96).centerCrop().into(viewHolder.image);

アダプターで次のコードを使用しました。残念ながらmには画像が表示されないので、どなたか助けてください。

また、SDカードから画像をロードするための効率的な画像ロードライブラリを提案することもできます。

要件スクロールするたびに画像をロードしません。既にロードされている場合は、スクロール時にイメージをロードしないでください

18
user3607798

ファイルをロードするには、まずURIに変換する必要があります

Uri uri = Uri.fromFile(new File(images.get(position).getDataPath()));

Picasso.with(activity).load(uri)
            .resize(96, 96).centerCrop().into(viewHolder.image);

要件スクロールするたびに画像をロードしない。既にロードされている場合は、スクロール時にイメージをロードしないでください

  • ピカソはこれに優れています
47
Lena Bru

Picassoバージョン2.5.2では、ファイルを引数としてloadメソッドに渡す必要があるため、画像を次のように読み込むことができます。

Picasso.with(context).load(new File(images.get(position).getDataPath()))
    .resize(96, 96).centerCrop().into(viewHolder.image);
6
Darshan Dorai

new Fileを作成したくありませんでした。パスが既存のファイルから既に取得されている場合、新しいオブジェクトは必要ありません(デバイス内の既存の画像を表示する必要があるため)。

ピカソのドキュメントによると、次のようなことをする必要があります:file:///Android_asset/DvpvklR.png

だから私は以前持っていました:/storage/sdcard/Pictures/findyoursport/yoursport_1482358052384.jpeg

先行:file://がトリックを行いました

4
cutiko