如何优化图片

来源:互联网 发布:linux 装网卡 编辑:程序博客网 时间:2024/06/05 15:49
  @Override
    public View getView(final int i, View view, ViewGroup viewGroup) {
        ViewHolder holder;
        if (view == null){
            view = View.inflate(context,R.layout.item_layou,null);

            holder = new ViewHolder();

            holder.imageView = view.findViewById(R.id.image_view);
            holder.text_time = view.findViewById(R.id.text_time);
            holder.text_title = view.findViewById(R.id.text_title);

            view.setTag(holder);

        }else {
            holder = (ViewHolder) view.getTag();
        }

        //赋值
        holder.text_title.setText(list.get(i).getTitle());
        holder.text_time.setText(list.get(i).getCtime());

        //显示图片....
        /**
         * 为什么图片会产生错位 闪烁?????图片是异步加载+复用的优化的原因
         *
         * 1.imageView要跟自己的url路径匹配起来
         */
        holder.imageView.setTag(list.get(i).getPicUrl());

        //3.设置默认显示的图片
        holder.imageView.setImageResource(R.mipmap.ic_launcher);

        //2.在这个位置能区分出来imageView是当前的控件...借助接口回调的形式把异步获取的图片传递过来
        new ImageHelper().dispalyImage(list.get(i).getPicUrl(),holder.imageView, new ImageCallBack() {
            @Override
            public void setSuccessImage(Bitmap bitmap, ImageView imageView) {

                if (imageView.getTag().equals(list.get(i).getPicUrl())){

                    //
                    imageView.setImageBitmap(bitmap);
                }
            }
        });

        return view;
    }



    private class ViewHolder{
        ImageView imageView;
        TextView text_title;
        TextView text_time;
    }