このコードを使用するだけでなく、ピカソライブラリ経由で画像をダウンロードする必要があるのはなぜですか。
private Bitmap DownloadImage(String URL)
{
Bitmap bitmap = null;
InputStream in = null;
try
{
in = OpenHttpGETConnection(URL);
bitmap = BitmapFactory.decodeStream(in); in.close();
}
catch (Exception e)
{
Log.d("DownloadImage", e.getLocalizedMessage());
}
return bitmap;
}
別の質問:
PicassoはUIまたはバックグラウンドスレッドで画像をダウンロードしますか?
Androidに初めて、またはおそらくAndroidに移動した人のための記録のために..........
正直なところ、それはとても簡単です。利点は信じられないほどです。
これは使いやすいです:
Picasso.
with(State.mainContext).
load(parseImageFile.getUrl()).
into(null);
あなたはとても簡単です:
とても簡単です。スクラッチから書きたくない限り、Picassoを使用する必要があります。
ParseImageFileは基本的に機能しないことに注意してください-キャッシングなどについてはまったく役に立ちません。 Picassoに見事な代替手段(Universal Image Loaderなど)がありますが、2014年現在、Picassoほどうまく機能するものはありません。
注super-advanced-stuffsに移動する場合...のみの方が良いピカソよりも、ボレーに移行することです。しかし、それは大きな飛躍です。
AndroidでのListViewのスクロールは、iOSでのテーブル処理のスクロールよりもはるかに問題が多いことに注意してください。Android + Picassoは、 iOS。画像を含む大きなテーブルビューをスクロールするためのすべての作業が既に完了しています。
今日では、ピカソは-単純に-Androidアプリの中心部分です。ありがとうございます。コードは1行です。セットアップは不要です。
繰り返しになりますが、ピカソよりも優れているのは、ボレーに移った場合だけです。
ところで、あなたがそれを必要とするならば、ここにボレーv。ピカソに関する素晴らしい長い記事があります...
http://www.bignerdranch.com/blog/solving-the-Android-image-loading-problem-volley-vs-picasso/
Picassoは別のスレッドで画像をダウンロードし、管理します:
これは非常に簡単です。例を示します。
Picasso.with(context)
.load(url)
.placeholder(R.drawable.placeholder)
.resize(imgWidth, imgHeight)
.centerCrop()
.into(image);
私は常に画像にPicasso Libraryを使用しました。
画像の管理に非常に役立ち、メモリの問題を心配する必要はありません。
サーバーまたはjsonから画像をダウンロードするときに使用しました
Picasso.with(context).load("image url").fetch();
そして、その画像のURLをデータベースまたはどこかに保存します。
これで、その画像をどこでも使用できます(オフラインでも)。
Picasso.with(context).load("image url").into(ImageView);
_Picasso.with(this).load("http://webneel.com/wallpaper/sites/default/files/images/04-2013/island-beach-scenery-wallpaper.jpg").placeholder(R.mipmap.ic_launcher).fit().into(imageView,
new Callback() {@
Override
public void onSuccess() {}@
Override
public void onError() {}
});
_
次の理由により、ピカソライブラリ経由で画像をダウンロードする必要があります。
fit()
-サイズによっては、imageviewで一部の画像が読み込まれない場合があります。この方法は、大きな画像を読み込むのに役立ちます。onSuccess()
-画像が正常に読み込まれたときに何らかのアクションを実行できます。onError()
-画像の読み込みに問題がある場合、何らかのアクションを実行できます。PicassoはListViewとGridViewで画像を管理するための素晴らしいライブラリであることを知っていますが、Picassoを含むすべてのオプションの中で、GLIDEを使用しています...
ダウンロードとキャッシュを完璧に管理します...(ダウンロード完了後にPicassoがキャッシュされた画像を使用することはできませんでしたが、Glideはケーキのようにできました)。
GLIDEのGithubページは次のとおりです。
https://github.com/bumptech/glide
よろしく....
Picasso、Volley、Universal Image Loaderなどのイメージローダーライブラリを使用する必要があります。これらは、コードではできない次のことを行うためです。
ちなみに、UIスレッドでネットワークリクエストを実行することは絶対にしないでください。HoneyCombは、Androidでは実行できません。
ネットワークからイメージをロードするコアメソッドを使用する場合、大量のコードが必要になります。しかし、picassoのようなサードパーティライブラリを使用する場合、数行のコードで目標を達成できます。
。 picassoを使用してインターネットから画像を読み込むには、次の記述のみが必要です。
Picasso.with(this)
.load("YOUR IMAGE URL HERE")
.placeholder(Your Drawable Resource) //this is optional the image to display while the url image is downloading
.error(Your Drawable Resource) //this is also optional if some error has occurred in downloading the image this image would be displayed
.into(imageView);
しかし、picassoライブラリまたはその他のライブラリを使用しない場合、より多くのコード行を必要とするAsyncTaskを使用する必要があります。
build.gradle(Module:app)
に次の依存関係を追加してください
compile 'com.github.bumptech.glide:glide:3.6.1'
Picassoは、ダウンロードした画像のキャッシュ、キャッシュの検索、既存のリクエストのキャンセル、画像の変換とデコード、画像のサイズ変更、トリミングなど、画像のダウンロードに関連するすべての落とし穴を自動的に処理します。
そして、それをカスタマイズすることができ、キャッシュ用のメモリを設定し、すべてのリクエストにグローバル情報を追加するために使用されるリクエストトランスフォーマーを追加し、デフォルトのビットマップ設定でカバーされていない形式のデコード画像を処理するビットマップ設定を追加できます。
キャッシュを使用するか、ネットワークからダウンロードするメモリポリシーとネットワークポリシーを指定できます。ダウンロード中およびダウンロードでエラーが発生した場合に使用するプレースホルダーとエラー画像をそれぞれ追加できます。
Picassoは、ワーカースレッドで非同期的に画像をダウンロードします。
以下は、Picassoの最新バージョン2.71828を使用して、ワーカースレッドでImageViewに画像をロードするコードです。
Picasso.get().load(productImageUrl).into(imageView);
以下のコードは、画像のサイズを変更してトリミングします。
詳細については、 http://www.zoftino.com/Android-picasso-image-downloading-and-caching-library-tutorial を参照してください。 Picasso.get()。load(productImageUrl).resize(400,400).centerCrop()。into(imageView);