0
回答
关于使用UIL 下载服务器图片
华为云实践训练营,热门技术免费实践!>>>   
首先我先说下 我下载图片用的是开源的 UIL 我想要的效果是 第一次把图片下载后 滑动Listview 图片不会错位  图片只下载一次。有demo最好谢谢
package com.qzt.fragment;

import java.io.IOException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;

import org.apache.http.conn.ConnectTimeoutException;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.util.LruCache;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.http.get.or.post.AbstractAsyncTask;
import com.http.get.or.post.All_Indent;
import com.http.get.or.post.Anything;
import com.http.get.or.post.ImageUtils;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.qzt.viewsUitl.ViewHolder;
import com.qzt.vip.InfoActivity;
import com.qzt.wxfere.R;

public class Fragment_Vip extends BaseFragment{

        View theView;
        ListView mListView;
        private DisplayImageOptions options;
        private  ImageLoader imageLoader = ImageLoader.getInstance();
    private ArrayList<All_Indent> vip_list=new ArrayList<All_Indent>();
        private MyAdapter adapter;
        private HashMap<String, Bitmap> hadImage=new HashMap<String, Bitmap>();
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                        Bundle savedInstanceState) {
                super.onCreateView(inflater, container, savedInstanceState);
                theView = inflater.inflate(R.layout.layout_product, null);
                setTitle();
                init();
                return theView;
        }

        private void setTitle() {
                ((TextView)theView.findViewById(R.id.tvTitle)).setText("会员列表");

        }

        private void init() {
                // TODO Auto-generated method stub
                mListView = (ListView) theView.findViewById(R.id.lvProduct);
                adapter = new MyAdapter();
                mListView.setAdapter(adapter);
                mListView.setOnItemClickListener(new OnItemClickListener() {

                        @Override
                        public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                                All_Indent all_Indent = vip_list.get(position);
                                Intent intent = new Intent(getActivity(),InfoActivity.class)
                                .putExtra("name", all_Indent.name)
                                .putExtra("sex", all_Indent.DeliveryName)
                                .putExtra("tel", all_Indent.Tel).putExtra("imageurl", all_Indent.imageurl);
                                startActivity(intent);
                        }
                });
                DownVipsData();
        }
    private void DownVipsData(){
            new AsyncTask<String, Void, JSONObject>(){

        protected void onPreExecute() {
             Anything.showDialog(getActivity(), "加载中,请稍后!");
     };
                        @Override
                        protected JSONObject doInBackground(String... params) {
                                JSONObject result=null;
                                try {
                                        result = Anything.ji.VipsData(Anything.VIP_URL, params[0], Anything.VIP_ROWS, Anything.VIP_PAGE);
                                        if(!"".equals(result) && result!=null){
                                                return result;
                                        }
                                } catch (ConnectTimeoutException e) {
                                        e.printStackTrace();
                                } catch (JSONException e) {
                                        e.printStackTrace();
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                                
                                return null;
                        }
                    protected void onPostExecute(JSONObject result) {
                            if(!"".equals(result) && result!=null){
                                    String sex=null;
                                    try {
                                                if(result.getInt("statusCode")==200){
                                                        JSONArray jsonArray = result.getJSONArray("data");
                                                        for (int i = 0; i < jsonArray.length(); i++) {
                                                                JSONObject jsonObject = jsonArray.getJSONObject(i);
                                                                  int order_sex = jsonObject.getInt("Sex");
                                                                  if(order_sex==1){
                                                                          sex="男";
                                                                  }
                                                                  else if(order_sex==2){
                                                                          sex="女";
                                                                  }
                                                                  else {
                                                                          sex="未知";
                                                                  }
                                                All_Indent        all_Indent = new All_Indent(jsonObject.getString("Name"),
                                                                        jsonObject.getString("PhotoUrl"),
                                                                        sex, jsonObject.getString("Tel"));
                                                        vip_list.add(all_Indent);
                                                        adapter.notifyDataSetChanged();
                                                        }
                                                        Toast.makeText(getActivity(), result.getString("message"), Toast.LENGTH_SHORT).show();
                                                        Anything.dismissDialog();
                                                }
                                        } catch (JSONException e) {
                                                e.printStackTrace();
                                        }
                            }
                    };
            }.execute(Anything.getStringsp(getActivity(), "Code"));
    }



        class MyAdapter extends BaseAdapter {

                @Override
                public int getCount() {
                        return vip_list.size();
                }

                @Override
                public Object getItem(int position) {
                        return null;
                }

                @Override
                public long getItemId(int position) {
                        return 0;
                }

                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                        ViewHolder holder=null;
                        if(convertView==null){
                                holder=new ViewHolder();
                                convertView = LayoutInflater.from(getActivity()).inflate(
                                                R.layout.item_viplist, null);
                                holder.allImage = (ImageView) convertView.findViewById(R.id.vipImage);
                                holder.allName = (TextView) convertView.findViewById(R.id.vipName);
                                holder.allSex = (TextView) convertView.findViewById(R.id.vipSex);
                                holder.allPhone = (TextView) convertView.findViewById(R.id.vipPhone);
                                convertView.setTag(holder);
                        }
                        else {
                                holder=(ViewHolder) convertView.getTag();
                                imageLoader.clearMemoryCache(); 
                        }
                        All_Indent all_Indent = vip_list.get(position);
                        holder.allName.setText(all_Indent.name);
                        holder.allSex.setText(all_Indent.DeliveryName);
                        holder.allPhone.setText(all_Indent.Tel);
                        imageLoader.displayImage(all_Indent.imageurl, holder.allImage , options, null);
                        return convertView;
                }
        }
}
<无标签>
举报
说不委屈
发帖于3年前 0回/247阅
顶部