私はグライドを使ってScale ImageViewに画像をロードしています。これは、パンとズームのジェスチャーを含むカスタムビューです。画像を設定するには、このカスタムビューにBitmap
オブジェクトを渡す必要があります。Android Glide:特定のサイズでビットマップをダウンロードするにはどうすればよいですか?
だから私はグライドの.asBitmap()
SimpleTarget
とを使用することができます。
private SimpleTarget target = new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation) {
scaleImageView.setImage(ImageSource.bitmap(bitmap));
}
};
private void loadImageSimpleTarget() {
Glide
.with(context)
.load(url)
.asBitmap()
.into(target);
}
このコードスニペットはうまく動作しますが、私はOutOfMemoryErrors
につながることができますフルサイズのビットマップを取得します。また、コンストラクタで希望するBitmapサイズを...new SimpleTarget<Bitmap>(250, 250)...
のように指定することもできますが、寸法を手動で計算する必要があります。
ビュー(CustomViewのインスタンス)をGlideの要求に渡す可能性があるため、寸法は自動的に計算され、その結果としてBitmapオブジェクトを受け取りますか?
あなたがのCustomViewの寸法を使用したいですか? – leonziyo
@leonziyoはい、CustomViewのサイズで画像をロードします。私は 'match_parent'と一緒に使用するので、特定の次元を持ちます。 – Ruslan
なぜSimpleTargetのコンストラクタに次元を渡さないのですか?このように、 'new SimpleTarget(customView.getWidth()、customView.getHeight())' ... –
leonziyo