package com.diandi.demo.adapter; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.diandi.demo.R; import com.diandi.demo.adapter.base.BaseListAdapter; import com.diandi.demo.adapter.base.ViewHolder; import com.diandi.demo.io.MemoryCache; import com.diandi.demo.model.Plan; import com.diandi.demo.util.Calculator; import com.diandi.demo.util.TimeUtil; import java.util.List; /** * ******************************************************************************* * ********* Author : klob(kloblic@gmail.com) . * ********* Date : 2014-11-29 . * ********* Time : 11:46 . * ********* Project name : Diandi1.18 . * ********* Version : 1.0 * ********* Copyright @ 2014, klob, All Rights Reserved * ******************************************************************************* */ public class PlanAdapter extends BaseListAdapter<Plan> { public PlanAdapter(Context context, List<Plan> list) { super(context, list); } @Override public void setList(List<Plan> list) { super.setList(list); } @Override public View bindView(int position, View contentView, ViewGroup parent) { LinearLayout backgroundLayout; TextView titleText; TextView timeText; ImageView headImg; TextView progressText; TextView dueText; TextView noteText; if (contentView == null) { contentView = mInflater.inflate(R.layout.item_plan, null); } titleText = ViewHolder.get(contentView, R.id.item_plan_title_text); timeText = ViewHolder.get(contentView, R.id.item_plan_time_text); headImg = ViewHolder.get(contentView, R.id.item_plan_head_img); progressText = ViewHolder.get(contentView, R.id.item_plan_progress_text); backgroundLayout = ViewHolder.get(contentView, R.id.item_plan_background); dueText = ViewHolder.get(contentView, R.id.item_plan_due_text); noteText = ViewHolder.get(contentView, R.id.item_plan_note_text); String title = mDataList.get(position).getTitle(); String dueTime = TimeUtil.getDueTimeString(mDataList.get(position).getPlanDate()); int day = Calculator.calculate(dueTime); progressText.setText(mDataList.get(position).getProgress() + "%"); dueText.setText(dueTime); if (day < 0) { titleText.setText(title + "已经"); } else { titleText.setText(title + "还剩"); } timeText.setText(String.valueOf(Math.abs(day)) + "天"); int imageResId; int t = mDataList.get(position).getType(); switch (t) { case Plan.URGENT_TOP: imageResId = R.drawable.cover_bg4; backgroundLayout.setBackgroundResource(R.drawable.listitem_red); break; case Plan.URGENT_EXTRA: imageResId = R.drawable.cover_bg4; backgroundLayout.setBackgroundResource(R.drawable.listitem_red); break; case Plan.URGENT_HIGH: imageResId = R.drawable.cover_bg5; backgroundLayout.setBackgroundResource(R.drawable.listitem_yellow); break; case Plan.URGENT_MIDDLE: imageResId = R.drawable.cover_bg6; backgroundLayout.setBackgroundResource(R.drawable.listitem_blue); break; case Plan.URGENT_LOW: imageResId = R.drawable.cover_bg3; backgroundLayout.setBackgroundResource(R.drawable.listitem_green); break; default: imageResId = R.drawable.cover_bg1; backgroundLayout.setBackgroundResource(R.drawable.listitem_white); break; } backgroundLayout.setPadding(6, 8, 8, 8); MemoryCache memoryCache = new MemoryCache(); Bitmap bitmap = memoryCache.getBitmapFromMemCache(imageResId); if (bitmap == null) { bitmap = BitmapFactory.decodeResource(mContext.getResources(), imageResId); memoryCache.addBitmapToMemoryCache(imageResId, bitmap); } headImg.setImageBitmap(bitmap); noteText.setText(mDataList.get(position).getNote()); return contentView; } }