package com.quark.adapter; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Hashtable; import java.util.List; import java.util.Map; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.graphics.drawable.ColorDrawable; import android.os.Environment; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.WindowManager; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.RelativeLayout; import android.widget.TextView; import com.android.volley.AuthFailureError; import com.android.volley.DefaultRetryPolicy; import com.android.volley.Request; 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.android.volley.toolbox.StringRequest; import com.carson.constant.ConstantForSaveList; import com.carson.loadpic.CarsonLoadPic; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import com.qingmu.jianzhidaren.R; import com.quark.common.ToastUtil; import com.quark.common.Url; import com.quark.company.function.FullStarffedActivity; import com.quark.company.function.PersonAssessActivity; import com.quark.guanli.BaomingListActivity; import com.quark.guanli.MyJianzhiDetailActivity; import com.parttime.main.MainTabActivity; import com.quark.model.MyJianzhi; import com.quark.ui.widget.CustomDialog; import com.quark.ui.widget.CustomDialogThree; import com.quark.utils.NetWorkCheck; import com.quark.volley.VolleySington; import com.thirdparty.alipay.RechargeActivity; /** * * @ClassName: MyJianzhiAdapter * @Description: TODO * @author howe * @date 2015-1-22 下午8:40:37 * */ public class MyJianzhiAdapter extends BaseAdapter { private ViewHolder holder; private List<MyJianzhi> list; private Context context; private ImageView qrImgImageView; Bitmap mBitmap; public int status = 0; // 图片宽度的一般 private static final int IMAGE_HALFWIDTH = 50; private String sign_url, previewRefreshUrl, refreshUrl;// 签到URL、预刷新、刷新 private String company_id; private SharedPreferences sp; protected RequestQueue queue; private MyJianzhi jianzhi; public MyJianzhiAdapter(Context context, List<MyJianzhi> list) { this.list = list; this.context = context; sp = context.getSharedPreferences("jrdr.setting", context.MODE_PRIVATE); company_id = sp.getString("userId", ""); queue = VolleySington.getInstance().getRequestQueue(); refreshUrl = Url.COMPANY_MyJianzhi_reflesh + "?token=" + MainTabActivity.token; previewRefreshUrl = Url.COMPANY_MyJianzhi_previewReflesh + "?token=" + MainTabActivity.token; } @Override public int getCount() { return list == null ? 0 : list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(final int i, View convertView, ViewGroup parent) { if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.from(context).inflate( R.layout.item_myjianzhi_2, null); holder.titleTv = (TextView) convertView.findViewById(R.id.title); holder.statusTv = (TextView) convertView .findViewById(R.id.item_status_tv); holder.addressTv = (TextView) convertView .findViewById(R.id.item_address_tv); holder.dateTimeTv = (TextView) convertView .findViewById(R.id.item_datetime_tv); holder.scanTv = (TextView) convertView .findViewById(R.id.item_scans_tv); holder.introTv = (TextView) convertView .findViewById(R.id.item_intro_tv); holder.confirmedTv = (TextView) convertView .findViewById(R.id.item_confirmed_people_tv); holder.totalTv = (TextView) convertView .findViewById(R.id.item_all_people_tv); holder.weiChuliTv = (TextView) convertView .findViewById(R.id.item_unconfirmed_number_tv); holder.weiPingjiaImv = (ImageView) convertView .findViewById(R.id.item_uncomment_imv); holder.item_photo_layout = (LinearLayout) convertView .findViewById(R.id.item_photo_layout); holder.rosterLayout = (RelativeLayout) convertView .findViewById(R.id.item_roster_layout); holder.pingjiaLayout = (RelativeLayout) convertView .findViewById(R.id.item_pingjia_layout); holder.img1 = (ImageView) convertView .findViewById(R.id.item_photo_1); holder.img2 = (ImageView) convertView .findViewById(R.id.item_photo_2); holder.img3 = (ImageView) convertView .findViewById(R.id.item_photo_3); holder.img4 = (ImageView) convertView .findViewById(R.id.item_photo_4); holder.img5 = (ImageView) convertView .findViewById(R.id.item_photo_5); holder.reFreshBtn = (Button) convertView .findViewById(R.id.item_refresh_btn); holder.signBtn = (Button) convertView .findViewById(R.id.item_sign_btn); holder.button1 = (Button) convertView .findViewById(R.id.item_button_01); holder.button2 = (Button) convertView .findViewById(R.id.item_button_02); holder.button3 = (Button) convertView .findViewById(R.id.item_button_03); holder.item_topLayout = (LinearLayout) convertView .findViewById(R.id.item_top_layout); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.titleTv.setText(list.get(i).getTitle());// titile // 活动是否是已取缔 if (list.get(i).getActivity_status() == 4) { holder.statusTv.setText("被冻结"); holder.statusTv.setTextColor(context.getResources().getColor( R.color.guanli_beiqudi_color)); } else { if (list.get(i).getStatus() == 1) { // 待审核 holder.statusTv.setText("待审核"); holder.statusTv.setTextColor(context.getResources().getColor( R.color.guanli_shenhe_color)); } else if (list.get(i).getStatus() == 2) { // 审核通过招人中 int hc = list.get(i).getHead_count(); int cc = list.get(i).getConfirmed_count(); if (hc == cc) { // 已招满 holder.statusTv.setText("已招满"); holder.statusTv.setTextColor(context.getResources() .getColor(R.color.guanli_yimanyuan_color)); } else { holder.statusTv.setText("招人中"); holder.statusTv.setTextColor(context.getResources() .getColor(R.color.guanli_zhaorenzhong_color)); } } else if (list.get(i).getStatus() == 3) {// 审核不通过 holder.statusTv.setText("未通过"); holder.statusTv.setTextColor(context.getResources().getColor( R.color.guanli_weitongguo_color)); } else if (list.get(i).getStatus() == 4) {// 已下架 holder.statusTv.setText("已下架"); holder.statusTv.setTextColor(context.getResources().getColor( R.color.guanli_yixiajia_color)); } } holder.addressTv.setText(list.get(i).getCounty());// 发布地点 if (list.get(i).getPublish_time() != null && !"".equals(list.get(i).getPublish_time())) { if (list.get(i).getPublish_time().length() > 5) { if (list.get(i).getNow() != null && !"".equals(list.get(i).getNow())) { String cNow = list.get(i).getNow(); String pubTime = list.get(i).getPublish_time(); // 2015-05-10 21:15:12 if (cNow.length() > 5) { cNow = cNow.substring(5, 10); pubTime = pubTime.substring(5, 10); if (cNow.equals(pubTime)) { holder.dateTimeTv.setText("今天" + list.get(i).getPublish_time() .substring(11, 16));// 发布时间 } else { holder.dateTimeTv.setText(pubTime);// 发布时间 } } else { holder.dateTimeTv.setText(list.get(i).getPublish_time() .substring(5));// 发布时间 } } else { holder.dateTimeTv.setText(list.get(i).getPublish_time() .substring(5));// 发布时间 } } else holder.dateTimeTv.setText(list.get(i).getPublish_time());// 发布时间 } holder.scanTv.setText(list.get(i).getView_count() + "次");// 浏览次数 holder.introTv.setText(list.get(i).getRequire_info());// 活动介绍 holder.confirmedTv.setText(list.get(i).getConfirmed_count() + ""); if (list.get(i).getUncheck_count() > 0) { holder.weiChuliTv.setText((list.get(i).getUncheck_count() > 99 ? 99 : list.get(i).getUncheck_count()) + "");// 未处理人数 holder.weiChuliTv.setVisibility(View.VISIBLE); holder.button1.setVisibility(View.VISIBLE); } else { holder.button1.setVisibility(View.GONE); holder.button2.setVisibility(View.GONE); holder.weiChuliTv.setVisibility(View.INVISIBLE); } if (sp.getBoolean(ConstantForSaveList.userId + list.get(i).getActivity_id(), false)) { holder.weiPingjiaImv.setVisibility(View.VISIBLE);// 未评价数(录取后又取消报名) } else { holder.weiPingjiaImv.setVisibility(View.INVISIBLE); } // 点击进入活动详情 holder.item_topLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { jianzhi = list.get(i); if (jianzhi.getActivity_status() == 4) { ToastUtil.showShortToast("您的活动已被冻结,请联系客服"); } else { Intent intent = new Intent(); intent.setClass(context, MyJianzhiDetailActivity.class); intent.putExtra("activity_id", jianzhi.getActivity_id() + ""); context.startActivity(intent); } } }); jianzhi = list.get(i); // 显示最新报名的5个人员头像 JSONArray jsArray = null; jsArray = jianzhi.getApply_list(); // 如果没有报名人员和已录取人员,则头像栏隐藏 if (jsArray != null && jianzhi != null) { if (jsArray.length() > 0 || jianzhi.getConfirmed_count() > 0) { holder.item_photo_layout.setVisibility(View.VISIBLE); holder.totalTv.setText("/" + jsArray.length());// 总报名数 if (jsArray.length() == 1) { holder.img1.setVisibility(View.VISIBLE); holder.img2.setVisibility(View.INVISIBLE); holder.img3.setVisibility(View.INVISIBLE); holder.img4.setVisibility(View.INVISIBLE); holder.img5.setVisibility(View.INVISIBLE); } else if (jsArray.length() == 2) { holder.img1.setVisibility(View.VISIBLE); holder.img2.setVisibility(View.VISIBLE); holder.img3.setVisibility(View.INVISIBLE); holder.img4.setVisibility(View.INVISIBLE); holder.img5.setVisibility(View.INVISIBLE); } else if (jsArray.length() == 3) { holder.img1.setVisibility(View.VISIBLE); holder.img2.setVisibility(View.VISIBLE); holder.img3.setVisibility(View.VISIBLE); holder.img4.setVisibility(View.INVISIBLE); holder.img5.setVisibility(View.INVISIBLE); } else if (jsArray.length() == 4) { holder.img1.setVisibility(View.VISIBLE); holder.img2.setVisibility(View.VISIBLE); holder.img3.setVisibility(View.VISIBLE); holder.img4.setVisibility(View.VISIBLE); holder.img5.setVisibility(View.INVISIBLE); } else if (jsArray.length() >= 5) { holder.img1.setVisibility(View.VISIBLE); holder.img2.setVisibility(View.VISIBLE); holder.img3.setVisibility(View.VISIBLE); holder.img4.setVisibility(View.VISIBLE); holder.img5.setVisibility(View.VISIBLE); } int pic_user_id = 0; String pic_name = null; for (int j = 0; j < jsArray.length(); j++) { if (j >= 5) { break; } JSONObject info; try { info = jsArray.getJSONObject(j); pic_user_id = info.getInt("user_id"); pic_name = info.getString("picture_1"); switch (j) { case 0: if (pic_user_id != 0 && pic_name != null && !"".equals(pic_name)) { checkPhotoExits(pic_user_id, pic_name, holder.img1); } else { holder.img1 .setImageBitmap(CarsonLoadPic.centerSquareScaleBitmap( BitmapFactory.decodeResource( context.getResources(), R.drawable.broker_ic_launcher), 130)); } break; case 1: if (pic_user_id != 0 && pic_name != null && !"".equals(pic_name)) { checkPhotoExits(pic_user_id, pic_name, holder.img2); } else { holder.img2 .setImageBitmap(CarsonLoadPic.centerSquareScaleBitmap( BitmapFactory.decodeResource( context.getResources(), R.drawable.broker_ic_launcher), 130)); } break; case 2: if (pic_user_id != 0 && pic_name != null && !"".equals(pic_name)) { checkPhotoExits(pic_user_id, pic_name, holder.img3); } else { holder.img3 .setImageBitmap(CarsonLoadPic.centerSquareScaleBitmap( BitmapFactory.decodeResource( context.getResources(), R.drawable.broker_ic_launcher), 130)); } break; case 3: if (pic_user_id != 0 && pic_name != null && !"".equals(pic_name)) { checkPhotoExits(pic_user_id, pic_name, holder.img4); } else { holder.img4 .setImageBitmap(CarsonLoadPic.centerSquareScaleBitmap( BitmapFactory.decodeResource( context.getResources(), R.drawable.broker_ic_launcher), 130)); } break; case 4: if (pic_user_id != 0 && pic_name != null && !"".equals(pic_name)) { checkPhotoExits(pic_user_id, pic_name, holder.img5); } else { holder.img5 .setImageBitmap(CarsonLoadPic.centerSquareScaleBitmap( BitmapFactory.decodeResource( context.getResources(), R.drawable.broker_ic_launcher), 130)); } break; default: break; } } catch (JSONException e) { e.printStackTrace(); } } } else { holder.item_photo_layout.setVisibility(View.GONE); } } else { holder.item_photo_layout.setVisibility(View.GONE); } // 是否显示花名册、评价人员 if (jianzhi != null) { if (jianzhi.getConfirmed_count() > 0) { holder.rosterLayout.setVisibility(View.VISIBLE); holder.pingjiaLayout.setVisibility(View.VISIBLE); holder.button1.setVisibility(View.VISIBLE); holder.button2.setVisibility(View.VISIBLE); holder.button3.setVisibility(View.VISIBLE); } else { holder.rosterLayout.setVisibility(View.GONE); if (sp.getBoolean(ConstantForSaveList.userId + list.get(i).getActivity_id(), false)) { holder.pingjiaLayout.setVisibility(View.VISIBLE); } else { holder.button1.setVisibility(View.GONE); holder.button2.setVisibility(View.GONE); holder.pingjiaLayout.setVisibility(View.GONE); } } } holder.item_photo_layout.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { jianzhi = list.get(i); if (jianzhi.getActivity_status() == 4) { ToastUtil.showShortToast("您的活动已被冻结,请联系客服"); } else { if (list.get(i).getUncheck_count() > 0) { // 跳转到未处理人员列表 if (NetWorkCheck.isOpenNetwork(context)) { if (jianzhi != null) { Intent intent = new Intent(context, BaomingListActivity.class); intent.putExtra("activity_id", jianzhi.getActivity_id() + ""); intent.putExtra("title", jianzhi.getTitle()); intent.putExtra("female_count", String .valueOf(jianzhi.getFemale_count())); intent.putExtra("male_count", String.valueOf(jianzhi.getMale_count())); intent.putExtra("fromNotification", true); context.startActivity(intent); } else { ToastUtil.showShortToast("网络不好,请检查网络设置。"); } } else { ToastUtil.showShortToast("网络不好,请检查网络设置。"); } } else { // 跳转到全部人员列表 if (NetWorkCheck.isOpenNetwork(context)) { if (jianzhi != null) { Intent intent = new Intent(context, BaomingListActivity.class); intent.putExtra("activity_id", jianzhi.getActivity_id() + ""); intent.putExtra("title", jianzhi.getTitle()); intent.putExtra("female_count", String .valueOf(jianzhi.getFemale_count())); intent.putExtra("male_count", String.valueOf(jianzhi.getMale_count())); intent.putExtra("fromNotification", false); context.startActivity(intent); } else { ToastUtil.showShortToast("网络不好,请检查网络设置。"); } } else { ToastUtil.showShortToast("网络不好,请检查网络设置。"); } } } } }); holder.rosterLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { jianzhi = list.get(i); if (jianzhi.getActivity_status() == 4) { ToastUtil.showShortToast("您的活动已被冻结,请联系客服"); } else { // 跳转到花名册 Intent intent = new Intent(); intent.setClass(context, FullStarffedActivity.class); intent.putExtra("activity_id", jianzhi.getActivity_id() + ""); intent.putExtra("activity_name", jianzhi.getTitle()); intent.putExtra("total_num", jianzhi.getHead_count() + ""); context.startActivity(intent); } } }); holder.pingjiaLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { holder.weiPingjiaImv.setVisibility(View.INVISIBLE); // 跳转到活动评价列表 jianzhi = list.get(i); if (jianzhi.getActivity_status() == 4) { ToastUtil.showShortToast("您的活动已被冻结,请联系客服"); } else { Editor edt = sp.edit(); edt.putBoolean(ConstantForSaveList.userId + list.get(i).getActivity_id(), false); edt.commit(); Intent intent = new Intent(); intent.setClass(context, PersonAssessActivity.class); intent.putExtra("activity_id", jianzhi.getActivity_id() + ""); intent.putExtra("total_num", jianzhi.getConfirmed_count() + ""); context.startActivity(intent); } } }); // 置顶 holder.reFreshBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 获取当前list值 jianzhi = list.get(i); if (jianzhi.getActivity_status() == 4) { ToastUtil.showShortToast("您的活动已被冻结,请联系客服"); } else { if (NetWorkCheck.isOpenNetwork(context)) { if (jianzhi != null) { if (jianzhi.getStatus() == 3) { // 审核未通过不能刷新 ToastUtil.showShortToast("审核未通过不能进行置顶"); } else if (jianzhi.getStatus() == 4) { // 已下架的活动不能刷新 ToastUtil.showShortToast("该活动已下架不能进行置顶"); } else { if (jianzhi.getStatus() != 1) { // 弹框提示是否要刷新 previewRefreshJianZhi(String .valueOf(jianzhi.getActivity_id())); // 点击刷选窗口关闭 } else { ToastUtil.showShortToast("正在审核的兼职不能置顶"); } } } else { ToastUtil.showShortToast("当前网络状况不好,请检查网络环境。"); } } else { ToastUtil.showShortToast("当前网络状况不好,请检查网络环境。"); } } } }); holder.signBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { jianzhi = list.get(i); if (jianzhi.getActivity_status() == 4) { ToastUtil.showShortToast("您的活动已被冻结,请联系客服"); } else { try { sign_url = Url.COMPANY_sign + "?token=" + MainTabActivity.token + "&company_id=" + company_id + "&activity_id=" + list.get(i).getActivity_id(); initPopWindow(list.get(i).getActivity_id() + ""); } catch (WriterException e) { e.printStackTrace(); } } } }); return convertView; } private static class ViewHolder { TextView titleTv, statusTv, addressTv, dateTimeTv, scanTv, introTv, confirmedTv, totalTv, weiChuliTv; ImageView img1, img2, img3, img4, img5, weiPingjiaImv; LinearLayout item_photo_layout, item_topLayout; RelativeLayout rosterLayout, pingjiaLayout; Button reFreshBtn, signBtn;// 刷新、签到 Button button1, button2, button3;// 花名册上中下3条线 } /** * 判断本地是否存储了之前的照片 * */ private void checkPhotoExits(int pic_user_id, String picName, ImageView iv) { File mePhotoFold = new File(Environment.getExternalStorageDirectory() + "/" + "jzdr/" + "image"); if (!mePhotoFold.exists()) { mePhotoFold.mkdirs(); } File f = new File(Environment.getExternalStorageDirectory() + "/" + "jzdr/" + "image/" + picName); if (f.exists()) { // Bitmap bb_bmp = MyResumeActivity.zoomImg(f, 150, 150); Bitmap bb_bmp = BitmapFactory.decodeFile(Environment .getExternalStorageDirectory() + "/" + "jzdr/" + "image/" + picName); if (bb_bmp != null) { iv.setImageBitmap(CarsonLoadPic.centerSquareScaleBitmap(bb_bmp, 130)); } else { loadpersonPic(pic_user_id, picName, iv, 0); } } else { loadpersonPic(pic_user_id, picName, iv, 0); } } /** * @Description: 加载图片 * @author howe * @date 2014-7-30 下午5:57:52 * */ private void loadpersonPic(final int pic_user_id, final String picName, final ImageView imageView, final int isRound) { ImageRequest imgRequest = new ImageRequest(Url.GETPIC + picName, new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap arg0) { if (isRound == 1) { } else { imageView.setImageBitmap(CarsonLoadPic .centerSquareScaleBitmap(arg0, 130)); 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(); Editor edt = sp.edit(); edt.putString(pic_user_id + "_photo", picName); edt.commit(); } 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)); } /** * 刷新前先判断钱是否够用 * */ public void previewRefreshJianZhi(final String activity_id) { StringRequest request = new StringRequest(Request.Method.POST, previewRefreshUrl, new Response.Listener<String>() { @Override public void onResponse(String response) { try { JSONObject js = new JSONObject(response); JSONObject jss = js .getJSONObject("PreRefleshResponse"); int status = jss.getInt("status"); String money = jss.getString("money"); String msg = jss.getString("alert_msg"); String titile = jss.getString("alert_title"); String other = jss.getString("alert_other"); String cancle = jss.getString("alert_cancle"); if (status == 1) { // 状态1是当前可以免费刷新一次 // showAlertDialog( // "您已成功刷新兼职,要记得把活动分享出去哦,让更多的人来报名吧", // "刷新成功", "我知道了"); // true 付费 false 免费 // 1付费 0 免费 showRefreshAlertDialog(msg, titile, other, cancle, String.valueOf(status), activity_id);// msg,titile,button } else if (status == 2) { // 状态2是当前免费刷新次数用完,余额不足 // showAlertDialog( // "您今日的免费刷新次数已使用完,如需刷新此条兼职需要付费3元", // "刷新失败", "立即充值"); showFeeRefreshAlertDialog(msg, titile, other, cancle, money, String.valueOf(status), activity_id); } else if (status == 3) { // 状态3表示当前免费刷新次数用完,有可用余额 // showAlertDialog( // "活动刷新成功,将活动分享给他人,可以帮你更快的完成人员招聘哦", // "刷新成功", "我知道了"); showFeeRefreshAlertDialog(msg, titile, other, cancle, money, String.valueOf(status), activity_id); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<String, String>(); map.put("company_id", company_id); map.put("activity_id", activity_id); return map; } }; queue.add(request); request.setRetryPolicy(new DefaultRetryPolicy( ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f)); } /** * 刷新付费活动时弹框 * */ public void showFeeRefreshAlertDialog(String str, final String str2, final String str3, final String str4, String money, final String flag, final String activity_id) { CustomDialogThree.Builder builder = new CustomDialogThree.Builder( context); builder.setTitle(str2); builder.setMessage(str); builder.setMoney("(帐号余额:" + money + "元)"); builder.setPositiveButton(str3, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); // 2是立即充值,其它是刷新 if ("2".equals(flag)) { Intent intent = new Intent(); intent.setClass(context, RechargeActivity.class); context.startActivity(intent); } else { refreshJianZhi(flag, activity_id); } } }); builder.setNegativeButton(str4, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int arg1) { dialog.dismiss(); } }); builder.create().show(); } /** * 刷新活动时弹框 * */ public void showRefreshAlertDialog(String str, final String str2, final String str3, final String str4, final String flag, final String activity_id) { CustomDialog.Builder builder = new CustomDialog.Builder(context); builder.setTitle(str2); builder.setMessage(str); builder.setPositiveButton(str3, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); // 2是立即充值,其它是刷新 if ("2".equals(flag)) { Intent intent = new Intent(); intent.setClass(context, RechargeActivity.class); context.startActivity(intent); } else { refreshJianZhi(flag, activity_id); } } }); builder.setNegativeButton(str4, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int arg1) { dialog.dismiss(); } }); builder.create().show(); } public void showAlertDialog(String str, final String str2, String str3) { CustomDialog.Builder builder = new CustomDialog.Builder(context); builder.setTitle(str2); builder.setMessage(str); builder.setPositiveButton(str3, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); if (str2.equals("刷新失败")) { Intent intent = new Intent(); intent.setClass(context, RechargeActivity.class); context.startActivity(intent); } else if (str2.equals("刷新成功")) { // getData();// 刷新界面 } } }); if ("立即充值".equals(str3)) { builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int arg1) { dialog.dismiss(); } }); } builder.create().show(); } /** * 刷新兼职信息 * */ private void refreshJianZhi(final String flag, final String activity_id) { StringRequest request = new StringRequest(Request.Method.POST, refreshUrl, new Response.Listener<String>() { @Override public void onResponse(String response) { try { JSONObject js = new JSONObject(response); JSONObject jss = js .getJSONObject("RefleshResponse"); int status = jss.getInt("status"); if (status == 1) { // 状态1是当前可以免费刷新一次 // ToastUtil.showShortToast("刷新成功"); showAlertDialog( "您已成功置顶兼职,要记得把活动分享出去哦,让更多的人来报名吧", "置顶成功", "我知道了"); } else if (status == 2) { // 状态2是当前免费刷新次数用完,余额不足 } else if (status == 3) { // 状态3表示当前免费刷新次数用完,有可用余额 ToastUtil.showShortToast("置顶成功"); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { ToastUtil.showShortToast("置顶失败"); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<String, String>(); map.put("company_id", company_id); map.put("activity_id", activity_id); map.put("isPay", flag); return map; } }; queue.add(request); request.setRetryPolicy(new DefaultRetryPolicy( ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f)); } /** * 弹出二维码扫描码 * */ private void initPopWindow(String activity_id) throws WriterException { // 加载popupWindow的布局文件 final View contentView = LayoutInflater.from(context).inflate( R.layout.alert_dialog_code, null); qrImgImageView = (ImageView) contentView .findViewById(R.id.qiandao_code); Resources r = context.getResources(); // 生成二维码 // res= getResources();activity的方法上下文获取 mBitmap = BitmapFactory.decodeResource(r, R.drawable.ic_launcher); // 缩放图片 Matrix m = new Matrix(); float sx = (float) 2 * IMAGE_HALFWIDTH / mBitmap.getWidth(); float sy = (float) 2 * IMAGE_HALFWIDTH / mBitmap.getHeight(); m.setScale(sx, sy); // 重新构造一个40*40的图片 mBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), m, false); // mBitmap = EncodingHandler.createQRCode(url, 420);//生成二维码 WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); try { int width = wm.getDefaultDisplay().getWidth();// 屏幕 int height = wm.getDefaultDisplay().getHeight(); mBitmap = cretaeBitmap(new String(activity_id.getBytes(), "ISO-8859-1"), width * 3 / 4); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } qrImgImageView.setImageBitmap(mBitmap); // 声明一个弹出框 final PopupWindow popupWindow = new PopupWindow( contentView.findViewById(R.id.pop_layout), LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); // 为弹出框设定自定义的布局 popupWindow.setContentView(contentView); // // Button button_sure = (Button) // contentView.findViewById(R.id.btn_cancel); // button_sure.setOnClickListener(new OnClickListener() { // @Override // public void onClick(View v) { // popupWindow.dismiss(); // status = 1; // // signStaff(); // } // }); contentView.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { int height = contentView.findViewById(R.id.pop_layout).getTop(); int y = (int) event.getY(); if (event.getAction() == MotionEvent.ACTION_UP) { if (y > height) {// 把小于号 改为大于号,轻触其他地方都可以退出二维码 popupWindow.dismiss(); status = 1; } } return true; } }); // 设置SelectPicPopupWindow弹出窗体可点击 popupWindow.setFocusable(true); // 设置SelectPicPopupWindow弹出窗体动画效果 popupWindow.setAnimationStyle(R.style.AnimBottom); // 实例化一个ColorDrawable颜色为半透明 ColorDrawable dw = new ColorDrawable(0xb0000000); // 设置SelectPicPopupWindow弹出窗体的背景 popupWindow.setBackgroundDrawable(dw); popupWindow.showAtLocation( LayoutInflater.from(context).inflate( R.layout.fragment_home_company, null), Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); } /** * 生成二维码 * * @param 字符串 * @return Bitmap * @throws WriterException */ public Bitmap cretaeBitmap(String str, int widthAndHeight) throws WriterException { Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); // 生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败 // BitMatrix matrix= new MultiFormatWriter().encode(str, // BarcodeFormat.QR_CODE, 300, 300); BitMatrix matrix = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight, hints); int width = matrix.getWidth(); int height = matrix.getHeight(); // 二维矩阵转为一维像素数组,也就是一直横着排了,logo位于中间 int halfW = width / 2; int halfH = height / 2; int[] pixels = new int[width * height]; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if (x > halfW - IMAGE_HALFWIDTH && x < halfW + IMAGE_HALFWIDTH && y > halfH - IMAGE_HALFWIDTH && y < halfH + IMAGE_HALFWIDTH) { pixels[y * width + x] = mBitmap.getPixel(x - halfW + IMAGE_HALFWIDTH, y - halfH + IMAGE_HALFWIDTH); } else { if (matrix.get(x, y)) { pixels[y * width + x] = 0xff000000; } else { // 无信息设置像素点为白色 pixels[y * width + x] = 0xffffffff; } } } } Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); // 通过像素数组生成bitmap bitmap.setPixels(pixels, 0, width, 0, 0, width, height); return bitmap; } }