package com.hyrt.cei.adapter; import java.io.File; import java.lang.ref.SoftReference; import java.util.HashMap; import java.util.List; import com.hyrt.cei.application.CeiApplication; import com.hyrt.cei.db.DataHelper; import com.hyrt.cei.util.AsyncImageLoader; import com.hyrt.cei.util.NewFileDownload; import com.hyrt.cei.util.AsyncImageLoader.ImageCallback; import com.hyrt.cei.vo.ImageResourse; import com.hyrt.cei.vo.Report; import com.hyrt.ceiphone.R; import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Environment; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; public class BookSelfListAdapter extends BaseAdapter { private List<Report> data; private ListView listView; private AsyncImageLoader asyncImageLoader; private LayoutInflater inflater; DataHelper dataHelper; private HashMap<String, SoftReference<Drawable>> drawables = new HashMap<String, SoftReference<Drawable>>(); public BookSelfListAdapter(Activity c, List<Report> data, ListView listView) { this.data = data; this.listView = listView; inflater = LayoutInflater.from(c); asyncImageLoader = ((CeiApplication) c.getApplication()).asyncImageLoader; dataHelper = ((CeiApplication) c.getApplication()).dataHelper; } public int getCount() { return data.size(); } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(final int position, View convertView, ViewGroup parent) { final ProgressBar bar; final TextView tv; Holder holder = null; if (convertView == null) { holder = new Holder(); convertView = inflater.inflate( R.layout.read_report_book_shelf_item, null); holder.handImg = (ImageView) convertView .findViewById(R.id.yjbg_book_shelf_hand_img); holder.title = (TextView) convertView .findViewById(R.id.yjbg_book_shelf_title); holder.aName = (TextView) convertView .findViewById(R.id.yjbg_book_shelf_aname); holder.price = (TextView) convertView .findViewById(R.id.yjbg_book_shelf_price); holder.body = (TextView) convertView .findViewById(R.id.yjbg_book_shelf_text); convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } final Report report = data.get(position); holder.handImg.setTag(report.getPpath()); holder.handImg.setImageResource(R.drawable.read_report_report1); holder.title.setText(report.getName()); holder.aName.setText(report.getAuthor()); holder.price.setText(report.getPrice()); if (report.getIntro().length() > 100) { holder.body.setText(report.getIntro().replace("\n", "") .subSequence(0, 100) + "..."); } else { holder.body.setText(report.getIntro().replace("\n", "")); } ImageResourse imageResource = new ImageResourse(); imageResource.setIconUrl(data.get(position).getSmallPpath()); imageResource.setIconId(data.get(position).getId()); imageResource.setIconTime(data.get(position).getProtime()); asyncImageLoader.loadDrawable(imageResource, new ImageCallback() { @Override public void imageLoaded(Drawable imageDrawable, String imageUrl) { ImageView img = (ImageView) listView.findViewWithTag(report .getPpath()); if (img != null && imageDrawable != null) { // img.setLayoutParams(new Gallery.LayoutParams(360, 160)); img.setScaleType(ImageView.ScaleType.FIT_CENTER); img.setImageDrawable(imageDrawable); } } }); tv = (TextView) convertView.findViewById(R.id.yjbg_book_list_item_tv); bar = (ProgressBar) convertView .findViewById(R.id.yjbg_book_list_item_pro); if (!report.getIsLoad().equals("yes")) { /* tv.setVisibility(View.VISIBLE); bar.setVisibility(View.VISIBLE); Handler handler = new Handler() { @Override public void handleMessage(Message msg) { bar.setProgress(msg.arg1); tv.setText(msg.arg1 + "%"); if (msg.arg1 == 100) { tv.setText("100%"); report.setIsLoad("yes"); dataHelper.UpdateReportZT(report); } } }; String path = report.getDownpath().toString(); File savedir = new File(Report.SD_PATH + report.getName()); if (!savedir.exists()) { savedir.mkdirs(); } try { NewFileDownload.download(path, savedir, handler); } catch (Exception e) { e.printStackTrace(); }*/ } else { tv.setText("100%"); } return convertView; } public class Holder { ImageView handImg; TextView title; TextView aName; TextView price; TextView body; ImageButton download; ProgressBar bar; TextView resultView; } }