初識Volley(三)
2257 ワード
NetworkImageView分析:
コアメソッド:
内部実装はImageLoaderと同様であり、いずれもImageContainerのnewの1つのImageListenerによって行われ、ImageListenerではUrlの空判定のみを行い、Urlがnullである場合はImageContainerが呼び出される.cancelRequest();リクエストのキャンセル
上書き方法:
まとめ:ネットワークリクエストのダウンロード画像表示は、従来のImageViewよりも多くのネットワーク処理を使用することができます.
ダウンロード開始のデフォルト図とダウンロードエラー後の表示図を設定する2つの方法も追加されました
public class NetworkImageView extends ImageView
ImageViewから継承され、1つ追加されましたpublic void setImageUrl(String url, ImageLoader imageLoader) {}
メソッド、パラメータはUrlアドレスとImageLoaderオブジェクトを含むコアメソッド:
private void loadImageIfNecessary(final boolean isInLayoutPass) {}
内部実装、booleanタイプパラメータはネットワークを再要求するかどうかを表し、true:falseを再要求する:キャッシュを取る内部実装はImageLoaderと同様であり、いずれもImageContainerのnewの1つのImageListenerによって行われ、ImageListenerではUrlの空判定のみを行い、Urlがnullである場合はImageContainerが呼び出される.cancelRequest();リクエストのキャンセル
上書き方法:
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
//onLayout
loadImageIfNecessary(true);
}
@Override
protected void onDetachedFromWindow() {
// View Release
if (mImageContainer != null) {
// If the view was bound to an image request, cancel it and clear
// out the image from the view.
mImageContainer.cancelRequest();
setImageBitmap(null);
// also clear out the container so we can reload the image if necessary.
mImageContainer = null;
}
super.onDetachedFromWindow();
}
//drawable
@Override
protected void drawableStateChanged() {
super.drawableStateChanged();
invalidate();
}
まとめ:ネットワークリクエストのダウンロード画像表示は、従来のImageViewよりも多くのネットワーク処理を使用することができます.
ダウンロード開始のデフォルト図とダウンロードエラー後の表示図を設定する2つの方法も追加されました
/**
* Sets the default image resource ID to be used for this view until the attempt to load it
* completes.
*/
public void setDefaultImageResId(int defaultImage) {
mDefaultImageId = defaultImage;
}
/**
* Sets the error image resource ID to be used for this view in the event that the image
* requested fails to load.
*/
public void setErrorImageResId(int errorImage) {
mErrorImageId = errorImage;
}