Saya mencari cara untuk menggunakan bitmap sebagai input ke Glide. Saya bahkan tidak yakin apakah itu mungkin. Ini untuk tujuan mengubah ukuran. Glide memiliki peningkatan gambar yang baik dengan skala. Masalahnya adalah bahwa saya memiliki sumber daya sebagai bitmap yang sudah dimuat ke memori. Satu-satunya solusi yang bisa saya temukan adalah menyimpan gambar ke file sementara dan memuatnya kembali ke Glide sebagai inputStream/file ... Apakah ada cara yang lebih baik untuk mencapai itu?
Tolong sebelum menjawab ... Saya tidak berbicara tentang output dari Glide .. .asBitmap().get()
Saya tahu itu. Saya butuh bantuan dengan input.
Berikut adalah solusi solusi saya:
Bitmap bitmapNew=null;
try {
//
ContextWrapper cw = new ContextWrapper(ctx);
File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
File file=new File(directory,"temp.jpg");
FileOutputStream fos = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.close();
//
bitmapNew = Glide
.with(ctx)
.load(file)
.asBitmap()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into( mActualWidth, mActualHeight - heightText)
.get();
file.delete();
} catch (Exception e) {
Logcat.e( "File not found: " + e.getMessage());
}
Saya ingin menghindari menulis gambar ke internal dan memuatnya lagi, itulah alasan mengapa saya bertanya apakah ada cara untuk memiliki input sebagai bitmap.
Terima kasih
Kasus yang sangat aneh, tapi mari kita coba untuk menyelesaikannya. Saya menggunakan Picasso
yang lama dan tidak keren, tetapi suatu hari saya akan mencoba Glide.
Berikut ini beberapa tautan yang dapat membantu Anda:
Dan sebenarnya cara yang kejam tapi saya pikir efisien untuk menyelesaikan ini:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
yourBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
Glide.with(this)
.load(stream.toByteArray())
.asBitmap()
.error(R.drawable.ic_thumb_placeholder)
.transform(new CircleTransform(this))
.into(imageview);
Saya tidak yakin apakah ini akan membantu Anda, tapi saya harap ini bisa membuat Anda selangkah lebih dekat dengan solusi.
Jawaban yang diterima berfungsi untuk versi sebelumnya, tetapi dalam versi baru penggunaan Glide:
RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(android.R.drawable.waiting);
requestOptions.error(R.drawable.waiting);
Glide.with(getActivity()).apply(requestOptions).load(imageUrl).into(imageView);
inilah solusi lain yang mengembalikan Anda bitmap untuk disetel ke ImageView Anda
Glide.with(this)
.load(R.drawable.card_front) // you can pass url too
.asBitmap()
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
// you can do something with loaded bitmap here
imgView.setImageBitmap(resource);
}
});