Chciałbym użyć Glide do załadowania mapy bitowej do ImageView po przycięciu i zmianie rozmiaru bitmapy.Użyj slajdu, aby załadować mapę bitową do ImageView
Nie chcę używać ImageView.setImageBitmap(bitmap);
, ponieważ ładuję wiele obrazów i może to wymagać trochę pamięci, chociaż obrazy są małe, po prostu potrzebuję użyć Glide, ponieważ wiem, że optymalizuje buforowanie obrazu.
Przeczytałem this post, ale nie do końca rozumiałem jego rozwiązanie, gdy próbowałem go wdrożyć. Więc może ktoś ma czystsze i łatwiejsze do zrozumienia rozwiązanie.
To jest mój kod, który odbiera obraz i tworzy z niego mapę bitową.
Potrzebuję użyć przesuwania zamiast 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();
Czy możesz mi powiedzieć, jaki jest twój problem? Bitmapa ma wartość zerową lub twój "obraz" pokazuje biały kwadrat? –
Nie, mapa bitowa nie ma wartości null, potrzebuję użyć Glide, aby ustawić obraz bitmapowy w ImageView, zamiast ustawiać go bezpośrednio. –
Powód jest taki, że ładuję wiele obrazów, które wymagają buforowania pamięci. Rozumiesz co mam na myśli? –