ビットマップをトリミングしてサイズ変更した後、Glideを使用してImageViewにビットマップをロードしたいと思います。グライドを使用してビットマップをImageViewにロード
画像が大量に読み込まれていて、画像サイズが小さいにもかかわらず、画像がキャッシュされている可能性があるので、ImageView.setImageBitmap(bitmap);
を使用したくないので、Glideを使用する必要があります。
私はthis投稿を読んでいますが、私はそれを実装しようとしたときに彼の解決策を理解していませんでした。だから誰かがより洗練された、より理解しやすいソリューションを持っているかもしれません。
これは画像をピックアップしてビットマップを作成する私のコードです。
ImageView.setImageBitmap(bitmap);
の代わりにグライドを使用する必要があります。
new AsyncTask<String, Void, Void>() {
Bitmap theBitmap = null;
Bitmap bm = null;
@Override
protected Void doInBackground(String... params) {
String TAG = "Error Message: ";
try {
//Load the image into bitmap
theBitmap = Glide.
with(mContext).
load("http://example.com/imageurl").
asBitmap().
into(-1, -1).
get();
//resizes the image to a smaller dimension out of the main image.
bm = Bitmap.createBitmap(theBitmap, 0, 0, 210, 80);
} catch (final ExecutionException e) {
Log.e(TAG, e.getMessage());
} catch (final InterruptedException e) {
Log.e(TAG, e.getMessage());
} catch (final NullPointerException e) {
//
}
return null;
}
@Override
protected void onPostExecute(Void dummy) {
if (null != theBitmap) {
//Set image to imageview.
**// I would like to Use Glide to set the image view here Instead of .setImageBitmap function**
holder.mImageView.setImageBitmap(bm);
holder.mImageView.setAdjustViewBounds(true);
holder.mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
}
}
}.execute();
あなたの問題は何ですか?ビットマップがヌルか 'ImageView'が白い四角で表示されますか? –
いいえ、bitmapがnullではないため、Bitmapイメージを直接設定するのではなく、ImageViewに設定するためにGlideを使用する必要があります。 –
なぜなら、私はメモリキャッシュを必要とするたくさんのイメージを読み込んでいるからです。私は何を意味するのか理解していますか? –