package com.kitty.poclient.adapter; import java.lang.ref.SoftReference; import java.util.List; import android.content.Context; import android.graphics.Bitmap; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.kitty.poclient.R; import com.kitty.poclient.domain.Pack; import com.kitty.poclient.fragment.store.ThemesFragment; import com.kitty.poclient.thread.Pools; import com.kitty.poclient.util.BitmapUtil; import com.kitty.poclient.util.LoadImageAysnc.ImageCallBack; public class ThemeListAdapter4Web extends BaseAdapter { private Context context; // private ThemesFragment fragment; private List<Pack> themes; public ThemeListAdapter4Web(Context context, ThemesFragment fragment) { this.context = context; // this.fragment = fragment; } public List<Pack> getThemes() { return themes; } public void setThemes(List<Pack> themes) { this.themes = themes; } @Override public int getCount() { // System.out.println("getCount()=" + themes.size()); return themes.size(); } @Override public Object getItem(int position) { return themes.get(position); } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder; if (convertView == null || convertView.getTag() == null) { convertView = LayoutInflater.from(context).inflate(R.layout.themes_item_4_web, null); holder = new Holder(convertView); convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } holder.tvName.setText(themes.get(position).getName()); holder.mcount.setText("共" + themes.get(position).getMcount() + "首音乐"); holder.ivCover.setImageBitmap(themes.get(position).getBitmap()); // /* 显示屏幕区域内的图片,释放其它 */ // if (position >= fragment.getFistVisiblePosition() - 1 && position <= fragment.getLastVisiblePosition() + 1) { // System.out.println("load:position=" + position); // loadPackBitmap(holder, position); // } else { // System.out.println("free:position=" + position); // freePackBitmap(holder, position); // } return convertView; } // private void freePackBitmap(Holder holder, int position) { // holder.ivCover.setImageBitmap(null); // holder.ivCover.setBackgroundResource(R.drawable.theme_cover_bg); // themes.get(position).recyleBitmap(); // } // private void loadPackBitmap(Holder holder, int position) { // Bitmap bmp = themes.get(position).getImageBitmap(); // if (bmp != null && !bmp.equals(Constant.packCover) && !bmp.isRecycled()) { // holder.ivCover.setImageBitmap(bmp); // holder.ivCover.setBackgroundDrawable(null); // } else { // downloadImage(themes.get(position), holder, position); // System.out.println("downloadImage:position=" + position); // } // bmp = null; // } protected void downloadImage(final Pack pack, final Holder holder, final int position) { Pools.executorService2.submit(new Runnable() { @Override public void run() { // Looper.prepare(); String imageKey = pack.getImgurl() + "150"; Bitmap bitmap = BitmapUtil.loadImageAysnc.loadImageNohandler(imageKey, pack.getImgurl(), 150, false, new ImageCallBack() { @Override public void imageLoaded(Bitmap bitmap) { pack.setBitmap(new SoftReference<Bitmap>(bitmap)); } }); // 得到封面后刷新界面 if (bitmap != null) { pack.setBitmap(new SoftReference<Bitmap>(bitmap)); } bitmap = null; // Looper.loop(); } }); } class Holder { private ImageView ivCover; private TextView tvName; private TextView mcount; public Holder(View convertView) { ivCover = (ImageView) convertView.findViewById(R.id.iv_theme_cover); tvName = (TextView) convertView.findViewById(R.id.tv_theme_name); mcount = (TextView) convertView.findViewById(R.id.tv_theme_mcount); } } }