[Android][Volley] ImageRequestを使用していた箇所がDeprecatedになっていた

Androidアプリ用のネットワークライブラリとしてメジャーで使いやすいVolley。
相変わらず、お世話になっています。

URLの先の画像を取得する実装をImageRequestを使用していたのですが、警告出ているなと思ったらDeprecatedになっていた。

以下のように実装していました。
http://developer.android.com/intl/ja/training/volley/request.html


ImageRequest request = new ImageRequest(url,
new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap bitmap) {
mImageView.setImageBitmap(bitmap);
}
}, 0, 0, null,
new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
mImageView.setImageResource(R.drawable.image_load_error);
}
});


あれ、非推奨なのと思って回避策を調べていたら以下と同じだった。
http://stackoverflow.com/questions/33271864/android-volley-imagerequest-deprecated

なるほど、ImageRequestのクラスは非推奨ではなく、該当のコンストラクタが非推奨になっただけなので、コンストラクタをscaleTypeを追加したものに変更すればOKでした。

Volleyの中を見ると、ImageRequest内でScaleType.CENTER_INSIDEを指定してScaleType付きコンストラクタを呼び出しているので、前と同じ実装するのであれば、以下のように実装すればOK。


ImageRequest request = new ImageRequest(url,
new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap bitmap) {
mImageView.setImageBitmap(bitmap);
}
}, 0, 0, ScaleType.CENTER_INSIDE, null,
new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
mImageView.setImageResource(R.drawable.image_load_error);
}
});


無事解決です!

コメントの投稿

非公開コメント

ImageRequestコンストラクタの引数について

参考になりました。
一点、解決策側のサンプルコードで、CENTER_INSIDE と nullの間のカンマが抜けているように思います。

コメントありがとうございます。

> rashikun1491さん
指摘ありがとうございます。
カンマ抜けてましたので修正しました。
プロフィール

hiiro

Author:hiiro

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Counter