Saya tidak cukup paham dengan Glide, tetapi sepertinya jika Anda mengetahui ukuran target, Anda dapat menggunakan sesuatu seperti ini:
Bitmap theBitmap = Glide.
with(this).
load("http://....").
asBitmap().
into(100, 100). // Width and height
get();
Sepertinya Anda bisa lulus -1,-1
, dan mendapatkan gambar ukuran penuh (murni berdasarkan tes, tidak bisa melihatnya didokumentasikan).
Note into(int,int)
mengembalikan a FutureTarget<Bitmap>
, jadi Anda harus membungkus ini dengan penutup blok coba-tangkap ExecutionException
dan InterruptedException
. Berikut contoh implementasi yang lebih lengkap, diuji dan berfungsi:
class SomeActivity extends Activity {
private Bitmap theBitmap = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
final ImageView image = (ImageView) findViewById(R.id.imageView);
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
Looper.prepare();
try {
theBitmap = Glide.
with(SomeActivity.this).
load("https://www.google.es/images/srpr/logo11w.png").
asBitmap().
into(-1,-1).
get();
} catch (final ExecutionException e) {
Log.e(TAG, e.getMessage());
} catch (final InterruptedException e) {
Log.e(TAG, e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(Void dummy) {
if (null != theBitmap) {
image.setImageBitmap(theBitmap);
Log.d(TAG, "Image loaded");
};
}
}.execute();
}
}
Mengikuti saran Monkeyless dalam komentar di bawah (dan ini tampaknya juga cara resmi ), Anda dapat menggunakan SimpleTarget
, secara opsional digabungkan dengan override(int,int)
untuk menyederhanakan kode secara signifikan. Namun, dalam kasus ini ukuran persisnya harus diberikan (apa pun di bawah 1 tidak diterima):
Glide
.with(getApplicationContext())
.load("https://www.google.es/images/srpr/logo11w.png")
.asBitmap()
.into(new SimpleTarget<Bitmap>(100,100) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
image.setImageBitmap(resource);
}
});
seperti yang disarankan oleh @hennry jika Anda membutuhkan gambar yang sama, maka gunakannew SimpleTarget<Bitmap>()