package com.mos.adapter; import java.util.HashMap; import java.util.List; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; 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.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.ImageRequest; import com.android.volley.toolbox.Volley; import com.mos.activity.R; import com.mos.common.Constant; /** * 餐品信息的适配器 * */ public class MenusAdapter extends BaseAdapter { private LayoutInflater inflater; private Context context; private List<HashMap<String,Object>> datas; public MenusAdapter(Context context,List<HashMap<String,Object>> datas){ inflater = LayoutInflater.from(context); this.context = context; this.datas = datas; } @Override public int getCount() { return datas.size(); } @Override public Object getItem(int position) { return datas.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder viewHolder ; if(convertView == null){ convertView = inflater.inflate(R.layout.item_menu_content, parent, false); viewHolder = new ViewHolder(); viewHolder.iv_image = (ImageView)convertView.findViewById(R.id.item_menu_content_img); viewHolder.tv_menusName = (TextView)convertView.findViewById(R.id.item_menu_content_title); viewHolder.tv_price = (TextView)convertView.findViewById(R.id.item_menu_content_price); convertView.setTag(viewHolder); }else{ viewHolder = (ViewHolder)convertView.getTag(); } //创建一个RequestQueue对象 RequestQueue requestQueue = Volley.newRequestQueue(context); //创建ImageRequest对象 ImageRequest imageRequest = new ImageRequest( Constant.URL_WEB_SERVER+datas.get(position).get("menusImagePath").toString(),//url new Response.Listener<Bitmap>() {//监听器Listener @Override public void onResponse(Bitmap response) { viewHolder.iv_image.setImageBitmap(response); } //参数3、4表示图片宽高,Bitmap.Config.ARGB_8888表示图片每个像素占据4个字节大小 }, 0, 0, Config.ARGB_8888, new Response.ErrorListener() {//图片加载请求失败的回调Listener @Override public void onErrorResponse(VolleyError error) { viewHolder.iv_image.setImageResource(R.drawable.ic_normal_pic); } }); //将ImageRequest加载到Queue requestQueue.add(imageRequest); viewHolder.tv_menusName.setText(datas.get(position).get("menuName").toString()); viewHolder.tv_price.setText("¥"+datas.get(position).get("total_price").toString()); return convertView; } class ViewHolder{ ImageView iv_image;//图片的ImageView TextView tv_menusName;//餐品名称的TextView TextView tv_price;//餐品价钱的TextView } }