私はグライドについて十分に精通していませんが、ターゲットサイズがわかっている場合は、次のようなものを使用できるようです:
Bitmap theBitmap = Glide.
with(this).
load("http://....").
asBitmap().
into(100, 100). // Width and height
get();
に合格-1,-1
し、フルサイズの画像を取得できるようです(純粋にテストに基づいており、文書化されていません)。
Noteinto(int,int)
は を返すFutureTarget<Bitmap>
ので、これを と をカバーする try-catch ブロックでラップする必要がExecutionException
ありInterruptedException
ます。テスト済みで機能している、より完全な実装例を次に示します。
class SomeActivity extends Activity {
private Bitmap theBitmap = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// onCreate stuff ...
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) {
// The full bitmap should be available here
image.setImageBitmap(theBitmap);
Log.d(TAG, "Image loaded");
};
}
}.execute();
}
}
以下のコメントにある Monkeyless の提案に従って (これは公式の方法でもあるようです)、 を使用してSimpleTarget
、オプションで with を組み合わせてoverride(int,int)
、コードを大幅に簡素化できます。ただし、この場合、正確なサイズを指定する必要があります (1 未満は受け入れられません)。
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); // Possibly runOnUiThread()
}
});
同じ画像が必要な場合は@hennryが提案したように、使用しますnew SimpleTarget<Bitmap>()
アップデート
bitmap = Glide.with(c).asBitmap().load( "url").submit().get();