如何在android中使用图像加载监听器创建自定义imageview?

时间:2015-12-08 03:03:36

标签: android gridview imageview

我想将图片加载到gridView,并希望在加载过程中显示progress bar,并在加载完成后将其关闭。

如何在不使用第三方库的情况下为图像创建image load listener? 建议我提供任何示例代码供参考?

1 个答案:

答案 0 :(得分:0)

创建一个公共类CustomNetworkImageView

public class CustomNetworkImageView extends NetworkImageView {

    private Bitmap mLocalBitmap;

    private boolean mShowLocal;

    public void setLocalImageBitmap(Bitmap bitmap) {
        if (bitmap != null) {
            mShowLocal = true;
        }
        this.mLocalBitmap = bitmap;
        requestLayout();
    }

    @Override
    public void setImageUrl(String url, ImageLoader imageLoader) {
        mShowLocal = false;
        super.setImageUrl(url, imageLoader);
    }

    public CustomNetworkImageView(Context context) {
        this(context, null);
    }

    public CustomNetworkImageView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public CustomNetworkImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {

        super.onLayout(changed, left, top, right, bottom);
        if (mShowLocal) {
            setImageBitmap(mLocalBitmap);
        }
    }

}

在您的xml中使用

<urpackagename.CustomNetworkImageView
                android:id="@+id/uploadImage"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="5dp"
                android:scaleType="fitCenter"
                android:src="@drawable/urDrawable" />

在您的Activity或片段中初始化customImage View

public CustomNetworkImageView userImage;
userImage = (CustomNetworkImageView)getActivity().findViewById(R.id.uploadImage);