当前位置 : 主页 > 编程语言 > java >

设置ImageHolder占位符

来源:互联网 收集:自由互联 发布时间:2021-06-28
ImageHolder占位符 public void setImagePlaceHolder(final String url, final ImageView view) { if (view == null || TextUtils.isEmpty(url)) { return; } ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); if (layoutParams != null (l
ImageHolder占位符
public void setImagePlaceHolder(final String url, final ImageView view) {
        if (view == null || TextUtils.isEmpty(url)) {
            return;
        }
        ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
        if (layoutParams != null && (layoutParams.width <= 0 || layoutParams.height <= 0)) {
            return;
        }

        final String LOCAL_PREFIX = "res://";
        if (url.startsWith(LOCAL_PREFIX)) {
            ThreadManager.post(ThreadManager.THREAD_WORK, new Runnable() {
                @Override
                public void run() {
                    final Drawable drawable = ResTools.getDrawable(url.substring(LOCAL_PREFIX.length()));
                    ThreadManager.post(ThreadManager.THREAD_UI, new Runnable() {
                        @Override
                        public void run() {
                            if (view.getDrawable() == null) {
                                view.setImageDrawable(drawable);
                            }
                        }
                    });
                }
            });

        } else {
            ThreadManager.post(ThreadManager.THREAD_UI, new Runnable() {
                @Override
                public void run() {
                    Bitmap cache = ImageLoader.getInstance().getMemoryCache().get(url);
                    if (cache == null) {
                        ImageView proxyImage = new ImageView(view.getContext()) {
                            @Override
                            public void setImageDrawable(Drawable drawable) {
                                if (view.getDrawable() == null) {
                                    view.setImageDrawable(drawable);
                                }
                            }
                        };
                        proxyImage.setLayoutParams(view.getLayoutParams());

                        String uri = url.startsWith("//") ? "http:" + url : url;
                        WXImageLoaderManager.getInstance().displayImage(uri, view, null, null);
                    } else {
                        view.setImageBitmap(cache);
                    }
                }
            });
        }
    }
上一篇:控制层
下一篇:java项目小手册
网友评论