package com.kitty.poclient.adapter; import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.kitty.poclient.R; import com.kitty.poclient.bean.LocalCache; import com.kitty.poclient.bean.LocalTheme; import com.kitty.poclient.bean.LocalThemes; import com.kitty.poclient.common.Constant; import com.kitty.poclient.data.VirtualData; import com.kitty.poclient.domain.Pack; import com.kitty.poclient.util.BitmapUtil; import com.kitty.poclient.util.LoadImageAysnc.ImageCallBack; public class ThemeListAdapter extends BaseAdapter { private Context context; private ListView listview; //主题列表 private LocalThemes themes; public ThemeListAdapter(Context context, ListView listview, LocalThemes themes) { this.context = context; this.listview = listview; //translate: Pack > Theme this.themes = themes; } @Override public int getCount() { if (VirtualData.packs == null) { // CustomToast.makeText(context, "没有专辑数据", // Toast.LENGTH_SHORT).show(); return 0; } else { return VirtualData.packs.size(); } } @Override public Object getItem(int position) { return VirtualData.packs != null ? VirtualData.packs.get(position) : 0; } @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, null); holder = new Holder(convertView); if (VirtualData.packs == null) { return convertView; } convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } Pack pack = VirtualData.packs.get(position); holder.mainTitleTextView.setText(pack.getName()); //1-3主标题 // int subTitleTextColor = context.getResources().getColor(R.color.sub_title_textcolor); holder.subTitleTextView.setTextColor(subTitleTextColor); // themes.refreshAlbumCacheStatus(position); LocalTheme currentTheme = themes.get(position); int totalMusicNum = currentTheme.getTotalMusicNum(); int resourseId = R.drawable.wait; Log.i("ThemeCache", "getView-currentTheme.getCacheStatus()=" + currentTheme.getCacheStatus()); switch(currentTheme.getCacheStatus()){ case LocalCache.CACHE_STATUS_DOWNLOADED: resourseId = R.drawable.downloaded; break; case LocalCache.CACHE_STATUS_DOWNLOADING: resourseId = R.drawable.downloading; break; case LocalCache.CACHE_STATUS_WAIT: resourseId = R.drawable.wait; break; case LocalCache.CACHE_STATUS_FAILURE_NOSPACE: // resourseId = R.drawable.alert; resourseId = R.drawable.wait; break; default: resourseId = R.drawable.wait; break; } // Log.i("ThemeCache", "6,resourseId=" + resourseId); // Log.i("ThemeCache", "6,is(CACHE_STATUS_WAIT)=" + (resourseId ==R.drawable.wait)); holder.cacheStatusImageView.setImageDrawable(context.getResources().getDrawable(resourseId)); //2-3缓存状态图标 String subTitle = ""; if(currentTheme.getCacheStatus()==LocalCache.CACHE_STATUS_DOWNLOADED){ subTitle = totalMusicNum + "首音乐"; }else{ subTitle = "已缓存" + currentTheme.getDownloadedMusicNum() + "/" + totalMusicNum; } holder.subTitleTextView.setText(subTitle); //3-3副标题 String imageurl = ""; if (pack.getImgurl() != null) { final String imageKey = pack.getImgurl() + "150"; imageurl = pack.getImgurl(); holder.themeCoverImageView.setTag(imageKey); // 开始异步加载数据 Bitmap bitmap = BitmapUtil.loadImageAysnc.loadImage(imageKey, imageurl, 150, false, new ImageCallBack() { @Override public void imageLoaded(Bitmap bitmap) { ImageView imageViewTag = (ImageView) listview.findViewWithTag(imageKey); if (imageViewTag != null && !bitmap.isRecycled()) { imageViewTag.setBackgroundDrawable(new BitmapDrawable(bitmap)); } } }); if (bitmap != null && !bitmap.isRecycled()) { holder.themeCoverImageView.setBackgroundDrawable(new BitmapDrawable(bitmap)); } else { holder.themeCoverImageView.setBackgroundDrawable(new BitmapDrawable(Constant.packCover)); } } return convertView; } class Holder { private ImageView themeCoverImageView; private TextView mainTitleTextView; private ImageView cacheStatusImageView; private TextView subTitleTextView; public Holder(View convertView) { themeCoverImageView = (ImageView) convertView.findViewById(R.id.iv_theme_cover); mainTitleTextView = (TextView) convertView.findViewById(R.id.tv_theme_name); subTitleTextView = (TextView) convertView.findViewById(R.id.tv_theme_mcount); cacheStatusImageView = (ImageView) convertView.findViewById(R.id.cache_status); } } }