package com.quark.adapter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.List;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Environment;
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.DefaultRetryPolicy;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageRequest;
import com.carson.constant.ConstantForSaveList;
import com.qingmu.jianzhidaren.R;
import com.quark.common.Url;
import com.quark.http.image.CircularImage;
import com.quark.http.image.LoadImage;
import com.quark.model.BaomingList;
import com.quark.volley.VolleySington;
/**
*
* @ClassName: BaomingAdapter
* @Description: 管理 详细 报名人员列表
* @author howe
* @date 2015-1-29 上午10:23:23
*
*/
public class BaomingAdapter extends BaseAdapter {
private ViewHolder holder;
private List<BaomingList> list;
private Context context;
private SharedPreferences sp;
int[] heartImg = { R.id.xinyi_bt1, R.id.xinyi_bt2, R.id.xinyi_bt3,
R.id.xinyi_bt4, R.id.xinyi_bt5, R.id.xinyi_bt6, R.id.xinyi_bt7,
R.id.xinyi_bt8, R.id.xinyi_bt9, R.id.xinyi_bt10 };
protected RequestQueue queue = VolleySington.getInstance()
.getRequestQueue();
public BaomingAdapter(Context context, List<BaomingList> list) {
this.list = list;
this.context = context;
sp = context.getSharedPreferences("jrdr.setting", context.MODE_PRIVATE);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int i, View convertView, ViewGroup parent) {
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(
R.layout.item_baoming, null);
holder.bm_headpic = (CircularImage) convertView
.findViewById(R.id.bm_headpic);
holder.bm_title = (TextView) convertView
.findViewById(R.id.bm_title);
holder.sex_imv = (ImageView) convertView
.findViewById(R.id.item_sex_imv);
holder.bm_yan = (ImageView) convertView.findViewById(R.id.bm_yan);
holder.bm_cyj = (ImageView) convertView.findViewById(R.id.bm_cyj);
holder.bm_age = (TextView) convertView.findViewById(R.id.bm_age);
holder.bm_note = (TextView) convertView.findViewById(R.id.bm_note);
holder.bm_status = (ImageView) convertView
.findViewById(R.id.bm_status);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String sstr;
if (list.get(i).getPicture_1() != null
&& !list.get(i).getPicture_1().equals("")) {
// function1 开始是设置应用内缓存,持续时间设定为100秒,超过100秒重新加载
// BaomingImageLoader.loadImage(Url.GETPIC
// + list.get(i).getPicture_1(), this, holder);
// function2 下载图片到本地,之后从本地读取
loadNativePhoto("u" + list.get(i).getUser_id(), list.get(i)
.getPicture_1(), holder.bm_headpic);
Editor edt = sp.edit();
edt.putString("u" + list.get(i).getUser_id() + "_photo", list
.get(i).getPicture_1());
edt.commit();
// loadpersonPic(Url.GETPIC + list.get(i).getPicture_1(),
// holder.bm_headpic, 1);
} else {
if (list.get(i).getSex() == 1) {
sstr = "男";
holder.bm_headpic.setImageDrawable(context.getResources()
.getDrawable(R.drawable.photo_male));
holder.sex_imv.setImageDrawable(context.getResources()
.getDrawable(R.drawable.my_men));
} else {
sstr = "女";
holder.bm_headpic.setImageDrawable(context.getResources()
.getDrawable(R.drawable.photo_female));
holder.sex_imv.setImageDrawable(context.getResources()
.getDrawable(R.drawable.my_women));
}
}
holder.bm_title.setText(list.get(i).getName());
if (list.get(i).getCertification() == 2) {
holder.bm_yan.setImageDrawable(context.getResources().getDrawable(
R.drawable.my_certified));
} else {
holder.bm_yan.setImageDrawable(context.getResources().getDrawable(
R.drawable.my_unauthorized));
}
if (list.get(i).getEarnest_money() == 0) {
holder.bm_cyj.setImageDrawable(context.getResources().getDrawable(
R.drawable.my_ordinary));
} else {
holder.bm_cyj.setImageDrawable(context.getResources().getDrawable(
R.drawable.my_margin));
}
if (list.get(i).getSex() == 1) {
sstr = "男";
holder.sex_imv.setImageDrawable(context.getResources()
.getDrawable(R.drawable.my_men));
} else {
sstr = "女";
holder.sex_imv.setImageDrawable(context.getResources()
.getDrawable(R.drawable.my_women));
}
holder.bm_age.setText(list.get(i).getAge() + "岁");
holder.bm_note.setText(list.get(i).getNote());
if (list.get(i).getApply() == 1) {
holder.bm_status.setImageDrawable(context.getResources()
.getDrawable(R.drawable.myjob_icon_pass));
} else if (list.get(i).getApply() == 2) {
holder.bm_status.setImageDrawable(context.getResources()
.getDrawable(R.drawable.myjob_icon_refuse));
} else {
holder.bm_status.setVisibility(View.INVISIBLE);
}
addXinToView(list.get(i).getCreditworthiness(), convertView);// 信誉值:步长为5,半个心
return convertView;
}
public static class ViewHolder {
public CircularImage bm_headpic;
TextView bm_title;
ImageView sex_imv;
ImageView bm_yan;
ImageView bm_cyj;
TextView bm_age;
TextView bm_note;
ImageView bm_status;
}
// /*************************carson add on
// 4-9-19:47****************************************
/**
* 加载本地头像和名字
*/
private void loadNativePhoto(final String id, final String avatarUrl,
final ImageView avatar) {
// 先获取本地名字和头像
File mePhotoFold = new File(Environment.getExternalStorageDirectory()
+ "/" + "jzdr/" + "image");
if (!mePhotoFold.exists()) {
mePhotoFold.mkdirs();
}
File picture_1 = new File(Environment.getExternalStorageDirectory()
+ "/" + "jzdr/" + "image/" + sp.getString(id + "_photo", "c"));
if (picture_1.exists()) {
// 加载本地图片
// Bitmap bb_bmp = MyResumeActivity.zoomImg(picture_1, 300, 300);
Bitmap bb_bmp = BitmapFactory.decodeFile(Environment
.getExternalStorageDirectory()
+ "/"
+ "jzdr/"
+ "image/"
+ sp.getString(id + "_photo", "c"));
if (bb_bmp != null) {
avatar.setImageBitmap(LoadImage.toRoundBitmap(bb_bmp));
} else {
loadpersonPic(avatarUrl, avatar, 1);
}
} else {
loadpersonPic(avatarUrl, avatar, 1);
}
}
/**
* @Description: 加载图片
* @author howe
* @date 2014-7-30 下午5:57:52
*
*/
public void loadpersonPic(final String url, final ImageView imageView,
final int isRound) {
ImageRequest imgRequest = new ImageRequest(Url.GETPIC + url,
new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap arg0) {
String picName = url;
imageView.setImageBitmap(LoadImage.toRoundBitmap(arg0));
OutputStream output = null;
try {
File mePhotoFold = new File(Environment
.getExternalStorageDirectory()
+ "/"
+ "jzdr/" + "image");
if (!mePhotoFold.exists()) {
mePhotoFold.mkdirs();
}
output = new FileOutputStream(Environment
.getExternalStorageDirectory()
+ "/"
+ "jzdr/" + "image/" + picName);
arg0.compress(Bitmap.CompressFormat.JPEG, 100,
output);
output.flush();
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}, 300, 200, Config.ARGB_8888, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
}
});
queue.add(imgRequest);
imgRequest.setRetryPolicy(new DefaultRetryPolicy(ConstantForSaveList.DEFAULTRETRYTIME*1000, 1, 1.0f));
}
/**
* @Description: 将图片设置为圆形头像 pixels为角度比例
* @author howe
* @date 2014-7-30 下午10:36:02
*
*/
public static Bitmap toRoundCorner(Bitmap bitmap, float pixels) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundPx = pixels;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, bitmap.getWidth() / pixels,
bitmap.getHeight() / pixels, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
/**
* 信誉值
*
* @param xin
* @param convertView
*/
private void addXinToView(int xin, View convertView) {
if (xin > 0) {
int heartCount = xin / 10;
int heartHeart = xin % 10;
int j = 0;
if (heartCount > 9) {
ImageView imageView = (ImageView) convertView
.findViewById(heartImg[0]);
imageView.setVisibility(View.VISIBLE);
imageView.setImageResource(R.drawable.icon_heart_ten);
} else {
for (int i = 0; i < heartCount; i++) {
ImageView imageView = (ImageView) convertView
.findViewById(heartImg[i]);
imageView.setVisibility(View.VISIBLE);
imageView.setImageResource(R.drawable.icon_heart);
j = i;
}
if (heartHeart == 5) {
ImageView imageView = (ImageView) convertView
.findViewById(heartImg[j + 1]);
imageView.setImageResource(R.drawable.icon_heart_half);
imageView.setVisibility(View.VISIBLE);
}
// 用于刷新UI
if (heartCount < 9) {
for (int ii = j + 2; ii < 10; ii++) {
ImageView imageView = (ImageView) convertView
.findViewById(heartImg[ii]);
imageView.setVisibility(View.GONE);
}
}
}
} else {
for (int a = 0; a < 10; a++) {
ImageView imageView = (ImageView) convertView
.findViewById(heartImg[a]);
imageView.setVisibility(View.GONE);
}
}
}
}