美文网首页
android Glide 在fragment出现第一次加载模

android Glide 在fragment出现第一次加载模

作者: JasonChen8888 | 来源:发表于2019-10-16 15:38 被阅读0次

    背景:

     近期在公司开发中,项目开发中,出现了,在viewpager 中嵌套fragment中,glide加图片出现第一次加载的时候出现模糊的想象。
    

    修改前:

    展示代码:

    @Override
       public View getView(int position, View convertView, ViewGroup parent) {
           ImageView imageView = new ImageView(mContext);
           imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
           ImageLoaderHelper.getInstance().displayChatGroupImage(mContext, imageView, data.get(position), R.drawable.bg_chat_group_default, 5);
           return imageView;
       }
    
    @Override
        public void displayChatGroupImage(Context context, ImageView imageView, String url, int defaultImageResId, int radius) {
            Glide.with(context)
                    .load(getChatGroupGlideUrl(url))
                    .transform(new CenterCrop(context), new RoundTransform(context, radius))
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .placeholder(defaultImageResId)
                    .into(imageView);
        }
    

    为了达到居中并截取显示,默认Imageview显示都是正常,但是却是在第一次加载的时候出现了模糊,一直以为是缓存策略的问题,但是防线加了diskCacheStrategy(DiskCacheStrategy.ALL)也是没有效果的,后面才发现,缓存策略使用的是缓存所有,但是默认第一次显示是加载的是原图没有错,但是因为没有设置图片控件的具体宽度和高度,导致了第一次加载显示的是图片左上角的大图,

    修正后:

    @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView = new ImageView(mContext);
            ViewGroup.LayoutParams params = null;
            if (isNormalSize) {
                params = new ViewGroup.LayoutParams(normalSize, normalSize);
            } else {
                params = new ViewGroup.LayoutParams(bigSize, normalSize);
            }
            imageView.setLayoutParams(params);
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            ImageLoaderHelper.getInstance().displayChatGroupImage(mContext, imageView, data.get(position), R.drawable.bg_chat_group_default, 5);
            return imageView;
        }
    

    这样在第一次加载的时候就可以正常的展示出要的效果

    相关文章

      网友评论

          本文标题:android Glide 在fragment出现第一次加载模

          本文链接:https://www.haomeiwen.com/subject/ebzlvftx.html