package com.quark.us; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; import org.json.JSONException; import org.json.JSONObject; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.media.ExifInterface; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.text.Editable; import android.text.TextWatcher; import android.view.Display; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.view.WindowManager; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import com.android.volley.AuthFailureError; import com.android.volley.DefaultRetryPolicy; import com.android.volley.Request; 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.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; import com.qingmu.jianzhidaren.R; import com.quark.common.JsonHelper; import com.quark.common.JsonUtil; import com.quark.common.ToastUtil; import com.quark.common.Url; import com.quark.image.UploadImg; import com.quark.jianzhidaren.BaseActivity; import com.parttime.main.MainTabActivity; import com.quark.model.MyResume; import com.quark.senab.us.image.ImagePagerActivity; import com.quark.ui.widget.ActionSheet; import com.quark.ui.widget.ActionSheet.OnActionSheetSelected; import com.quark.ui.widget.CustomDialog; import com.quark.utils.Util; /** * 我的简历 * * @author C罗 * */ public class MyResumeActivity extends BaseActivity implements OnActionSheetSelected, OnCancelListener { String url1 = ""; String url2 = ""; String url3 = ""; String url4 = ""; String url5 = ""; String url6 = ""; String[] imagesUrls = new String[] { url1, url2, url3, url4, url5, url6 };// 直接初始化 String type; private static final int IMAGE_REQUEST_CODE = 0; private static final int CAMERA_REQUEST_CODE = 1; private static final int RESULT_REQUEST_CODE = 2; private static final String IMAGE_FILE_NAME = "faceImage.jpg";// 图片名称 private String totalPic; private MyResume re = new MyResume(); private String userId; private String getResumeUrl; private String submintUrl; private String loadPicUrl; private String uploadPicUrl; private boolean isLoadData = false; private int myCountPic = 0; private int MIN_COUNT = 0; // 我的照片 @ViewInject(R.id.button1) ImageView button1; @ViewInject(R.id.button2) ImageView button2; @ViewInject(R.id.button3) ImageView button3; @ViewInject(R.id.button4) ImageView button4; @ViewInject(R.id.button5) ImageView button5; @ViewInject(R.id.button6) ImageView button6; // 姓名 @ViewInject(R.id.my_name) TextView my_name; @ViewInject(R.id.sex_layout) LinearLayout sex_layout; @ViewInject(R.id.my_sex) TextView my_sex; @ViewInject(R.id.borthday_layout) LinearLayout borthday_layout; @ViewInject(R.id.my_borthyday) TextView my_birthyday; // 身高 @ViewInject(R.id.my_shengao) EditText my_shengao; // 毕业 @ViewInject(R.id.my_biye) EditText my_biye; // 学历 @ViewInject(R.id.my_xueli_layout) LinearLayout my_xueli_layout; @ViewInject(R.id.my_xueli) TextView my_xueli; // 三围 /* * @ViewInject(R.id.my_sanwei_xiong) EditText my_sanwei_xiong; * * @ViewInject(R.id.my_sanwei_yao) EditText my_sanwei_yao; * * @ViewInject(R.id.my_sanwei_tun) EditText my_sanwei_tun; */ @ViewInject(R.id.my_sanwei) EditText my_sanwei; // 健康证 @ViewInject(R.id.my_jiankongzheng_layout) LinearLayout my_jiankongzheng_layout; @ViewInject(R.id.my_jiankongzheng) TextView my_jiankongzheng; // @ViewInject(R.id.my_yifuchima_layout) LinearLayout my_yifuchima_layout; @ViewInject(R.id.my_yifuchima) TextView my_yifuchima; // @ViewInject(R.id.my_shoos_layout) LinearLayout my_shoos_layout; @ViewInject(R.id.my_shoos) TextView my_shoos; // 语言 @ViewInject(R.id.my_language_layout) LinearLayout my_language_layout; @ViewInject(R.id.my_language) TextView my_language; // 经验 @ViewInject(R.id.my_jinyan) EditText my_jinyan; // 图片总数 @ViewInject(R.id.my_pic) TextView my_pic; int width; // 屏幕宽度 private Bitmap pngBM = null; Uri tt_uri = null;// 拍照的Uri,三星调用拍照会启动ondestory,需额外保存 private ImageView me_top_left_img;// 左边返回图标 private SharedPreferences sp; private ProgressBar loadProgressBar;// 上传图片时加载框 // / // private ImagePopupWindow code; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.me_my_resume); ViewUtils.inject(this); sp = getSharedPreferences("jrdr.setting", MODE_PRIVATE); userId = sp.getString("userId", ""); getResumeUrl = Url.USER_jianli_show + "?token=" + MainTabActivity.token; submintUrl = Url.USER_jianli_submit + "?token=" + MainTabActivity.token; uploadPicUrl = Url.USER_jianli_uploadmypic + "?token=" + MainTabActivity.token; loadPicUrl = Url.GETPIC; // 图片上传loading loadProgressBar = (ProgressBar) findViewById(R.id.progressBar);// 加载框 getMyResume(); WindowManager wm = this.getWindowManager(); width = wm.getDefaultDisplay().getWidth(); my_jinyan.addTextChangedListener(mTextWatcher); my_jinyan.setSelection(my_jinyan.length()); // 将光标移动最后一个字符后面 me_top_left_img = (ImageView) findViewById(R.id.me_top_left_img); me_top_left_img.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (isJianliChange()) { showAlertDialog("您编辑的资料尚未保存。", "温馨提示"); } else { MyResumeActivity.this.finish(); } } }); } /** * 弹出是否保存的弹出框 */ private void showAlertDialog(String str, final String str2) { CustomDialog.Builder builder = new CustomDialog.Builder(this); builder.setMessage(str); builder.setTitle(str2); builder.setPositiveButton("替我保存", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); saveData(); if (check()) { showWait(true); StringRequest request = new StringRequest( Request.Method.POST, submintUrl, new Response.Listener<String>() { @Override public void onResponse(String response) { showWait(false); try { JSONObject js = new JSONObject( response); JSONObject statusjs = js .getJSONObject("ResponseStatus"); int status = statusjs .getInt("status"); if (status == 2) { showToast("更新成功"); finish(); } else { showToast("用户不存在"); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse( VolleyError volleyError) { showWait(false); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { return JsonHelper.toMap(re); } }; queue.add(request); request.setRetryPolicy(new DefaultRetryPolicy( ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f)); } } }); builder.setNegativeButton("暂时没空", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int arg1) { dialog.dismiss(); MyResumeActivity.this.finish(); } }); builder.create().show(); } /** * 判断简历信息是否更改 * */ private boolean isJianliChange() { // 如果简历更改返回true,else 返回false // 性别 if (re.getSex() == 0) { if (my_sex.getText() == null) { return true; } else { if (!my_sex.getText().equals("女性")) { return true; } } } else if (re.getSex() == 1) { if (my_sex.getText() == null) { return true; } else { if (!my_sex.getText().equals("男性")) { return true; } } } else { if (my_sex.getText() == null) { return true; } else { if (!my_sex.getText().equals("未填写")) { return true; } } } // 生日 if (my_birthyday.getText() == null) { return true; } else { if (!my_birthyday.getText().toString().equals(re.getBirthdate())) { return true; } } // 身高 if (my_shengao.getText() == null) { return true; } else { if (!my_shengao.getText().toString() .equals(String.valueOf(re.getHeight()))) { return true; } } // 学校 if (my_biye.getText() == null) { return true; } else { if (!my_biye.getText().toString().equals(re.getGraduate())) { return true; } } // 学历 if (my_xueli.getText() == null) { return true; } else { if (!my_xueli.getText().toString().equals(re.getEducation())) { return true; } } // 三围 if (my_sanwei.getText() == null) { return true; } else { if (re.getBbh() == null) { if (!"".equals(my_sanwei.getText().toString())) { return true; } } else { if (!my_sanwei.getText().toString().equals(re.getBbh())) { return true; } } } // 健康证 if (my_jiankongzheng.getText() == null) { return true; } else { String reString = ""; if (re.getHealth_record() == 0) { reString = "无"; } else if (re.getHealth_record() == 1) { reString = "有"; } else { reString = "未填写"; } if (!my_jiankongzheng.getText().toString().equals(reString)) { return true; } } // 衣服尺码 if (my_yifuchima.getText() == null) { return true; } else { String clothStr = re.getCloth_weight(); if (clothStr == null || "".equals(clothStr)) { clothStr = "未填写"; } if (!my_yifuchima.getText().toString().equals(clothStr)) { return true; } } // 鞋码 if (my_shoos.getText() == null) { return true; } else { if ("未填写".equals(my_shoos.getText().toString())) { if (re.getShoe_weight() == 0 || re.getShoe_weight() == -1) { } else { return true; } } else { if (!my_shoos.getText().toString() .equals(String.valueOf(re.getShoe_weight()))) { return true; } } } // 语言 if (my_language.getText() == null) { return true; } else { String lag = re.getLanguage(); if (lag == null || "".equals(lag)) { lag = "未填写"; } if (!my_language.getText().toString().equals(lag)) { return true; } } // 经历 if (my_jinyan.getText() == null) { return true; } else { if (!my_jinyan.getText().toString().equals(re.getSummary())) { return true; } } return false; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { // 监控/拦截/屏蔽返回键 // moveTaskToBack(true); // 弹出是否保存的按钮 if (isJianliChange()) { showAlertDialog("您编辑的资料尚未保存!", "温馨提示"); } else { MyResumeActivity.this.finish(); } return true; } else if (keyCode == KeyEvent.KEYCODE_MENU) { // 监控/拦截菜单键 } else if (keyCode == KeyEvent.KEYCODE_HOME) { // 由于Home键为系统键,此处不能捕获,需要重写onAttachedToWindow() } return super.onKeyDown(keyCode, event); } /** * 缓存本地个人简历信息,网络不好的时候提供调用 * */ private void savaPersonJianliInfor() { Editor personEdt = sp.edit(); personEdt.putString(userId + "name", re.getName());// 名字 personEdt.putInt(userId + "sex", re.getSex());// 性别 personEdt.putString(userId + "birthdate", re.getBirthdate());// 生日 personEdt.putInt(userId + "height", re.getHeight());// 身高 personEdt.putString(userId + "graduate", re.getGraduate());// 学校 personEdt.putString(userId + "education", re.getEducation());// 学历 personEdt.putString(userId + "bbh", re.getBbh());// 三围 personEdt.putInt(userId + "health_record", re.getHealth_record());// 是否有健康证 personEdt.putString(userId + "cloth_weight", re.getCloth_weight());// 衣服尺码 personEdt.putInt(userId + "shoe_weight", re.getShoe_weight());// 鞋子尺寸 personEdt.putString(userId + "language", re.getLanguage());// 语言 personEdt.putString(userId + "summary", re.getSummary());// 经历 String pic_1 = re.getPicture_1(); if (pic_1 == null || pic_1.equals("")) { } else { personEdt.putString(userId + "pic_1", pic_1); } String pic_2 = re.getPicture_2(); if (pic_2 == null || pic_2.equals("")) { } else { personEdt.putString(userId + "pic_2", pic_2); } String pic_3 = re.getPicture_3(); if (pic_3 == null || pic_3.equals("")) { } else { personEdt.putString(userId + "pic_3", pic_3); } String pic_4 = re.getPicture_4(); if (pic_4 == null || pic_4.equals("")) { } else { personEdt.putString(userId + "pic_4", pic_4); } String pic_5 = re.getPicture_5(); if (pic_5 == null || pic_5.equals("")) { } else { personEdt.putString(userId + "pic_5", pic_5); } String pic_6 = re.getPicture_6(); if (pic_6 == null || pic_6.equals("")) { } else { personEdt.putString(userId + "pic_6", pic_6); } personEdt.commit(); } /** * 获取本地缓存的个人简历信息 网络请求失败的时候使用 */ private void getPersonJianliInfor() { re.setName(sp.getString(userId + "name", re.getName()));// 名字 re.setSex(sp.getInt(userId + "sex", re.getSex()));// 性别 re.setBirthdate(sp.getString(userId + "birthdate", re.getBirthdate()));// 生日 re.setHeight(sp.getInt(userId + "height", re.getHeight()));// 身高 re.setGraduate(sp.getString(userId + "graduate", re.getGraduate()));// 学校 re.setEducation(sp.getString(userId + "education", re.getEducation()));// 学历 re.setBbh(sp.getString(userId + "bbh", re.getBbh()));// 三围 re.setHealth_record(sp.getInt(userId + "health_record", re.getHealth_record()));// 是否有健康证 re.setCloth_weight(sp.getString(userId + "cloth_weight", re.getCloth_weight()));// 衣服尺码 re.setShoe_weight(sp.getInt(userId + "shoe_weight", re.getShoe_weight()));// 鞋子尺寸 re.setLanguage(sp.getString(userId + "language", re.getLanguage()));// 语言 re.setSummary(sp.getString(userId + "summary", ""));// 经历 re.setPicture_1(sp.getString(userId + "pic_1", ""));// 图片1 re.setPicture_2(sp.getString(userId + "pic_2", ""));// 图片2 re.setPicture_3(sp.getString(userId + "pic_3", ""));// 图片3 re.setPicture_4(sp.getString(userId + "pic_4", ""));// 图片4 re.setPicture_5(sp.getString(userId + "pic_5", ""));// 图片5 re.setPicture_6(sp.getString(userId + "pic_6", ""));// 图片6 if (!re.getPicture_1().equals("")) { checkPhotoExits(re.getPicture_1(), button1); myCountPic++; } if (!re.getPicture_2().equals("")) { checkPhotoExits(re.getPicture_2(), button2); myCountPic++; } if (!re.getPicture_3().equals("")) { checkPhotoExits(re.getPicture_3(), button3); myCountPic++; } if (!re.getPicture_4().equals("")) { checkPhotoExits(re.getPicture_4(), button4); myCountPic++; } if (!re.getPicture_5().equals("")) { checkPhotoExits(re.getPicture_5(), button5); myCountPic++; } if (!re.getPicture_6().equals("")) { checkPhotoExits(re.getPicture_6(), button6); myCountPic++; } // initview 设置界面的默认值 initDefaultView();// 加载没有网络请求到的数据 } /** * 加载默认的简历列表 之前本地存储的 */ private void initDefaultView() { // 赋值 my_pic.setText("我的照片(" + myCountPic + "/6)"); my_name.setText(re.getName()); int sexInt = re.getSex(); if (sexInt == 0) { my_sex.setText("女性"); my_sex.setTextColor(getResources().getColor(R.color.ziti_black)); } else if (sexInt == -1) { my_sex.setText("未填写"); } else { my_sex.setText("男性"); my_sex.setTextColor(getResources().getColor(R.color.ziti_black)); } if (re.getBirthdate() != null && re.getBirthdate().equals("2015-01-01") == false) { my_birthyday.setText(re.getBirthdate()); my_birthyday.setTextColor(getResources().getColor( R.color.ziti_black)); } if (re.getHeight() != -1) { my_shengao.setText(re.getHeight() + ""); } if (re.getGraduate() != null) { my_biye.setText(re.getGraduate()); } if (re.getEducation() != null) { my_xueli.setText(re.getEducation()); my_xueli.setTextColor(getResources().getColor(R.color.ziti_black)); } // 三围 if (re.getBbh() != null && !"".equals(re.getBbh())) { my_sanwei.setText(re.getBbh() + ""); } // 三围end int jkz = re.getHealth_record(); if (jkz != -1) { if (jkz == 0) { my_jiankongzheng.setText("无"); my_jiankongzheng.setTextColor(getResources().getColor( R.color.ziti_black)); } else { my_jiankongzheng.setText("有"); my_jiankongzheng.setTextColor(getResources().getColor( R.color.ziti_black)); } } if ((re.getCloth_weight() != null) && (!re.getCloth_weight().equals("-1"))) { my_yifuchima.setText(re.getCloth_weight()); my_yifuchima.setTextColor(getResources().getColor( R.color.ziti_black)); } int shoes = re.getShoe_weight(); if (shoes == -1 || shoes == 0) { my_shoos.setText("未填写"); } else { my_shoos.setText(re.getShoe_weight() + ""); my_shoos.setTextColor(getResources().getColor(R.color.ziti_black)); } if ((re.getLanguage() != null) && (!re.getLanguage().equals("-1"))) { my_language.setText(re.getLanguage()); my_language.setTextColor(getResources() .getColor(R.color.ziti_black)); } if (re.getSummary() != null) { my_jinyan.setText(re.getSummary()); } } /** * 判断本地是否存储了之前的照片 * */ private void checkPhotoExits(final String picName, final ImageView iv) { runOnUiThread(new Runnable() { @Override public void run() { 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 = zoomImg(f, 300, 400); if (bb_bmp != null) { iv.setImageBitmap(bb_bmp); } else { loadpersonPic(picName, iv, 0); } } else { loadpersonPic(picName, iv, 0); } } }); } /** * 处理图片 * * @param bm * 所要转换的bitmap * @param newWidth新的宽 * @param newHeight新的高 * @return 指定宽高的bitmap */ public static Bitmap zoomImg(File picFile, int newWidth, int newHeight) { Bitmap bmp = null; try { FileInputStream fis = new FileInputStream(picFile); bmp = BitmapFactory.decodeStream(fis); } catch (FileNotFoundException e) { e.printStackTrace(); return bmp; } if (bmp == null) { return null; } // 获得图片的宽高 int width = bmp.getWidth(); int height = bmp.getHeight(); // 计算缩放比例 float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // 取得想要缩放的matrix参数 Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); // 得到新的图片 bmp = Bitmap.createBitmap(bmp, 0, 0, width, height, matrix, true); return bmp; } /** * 获取 网络数据 */ public void getMyResume() { myCountPic = 0; showWait(true); StringRequest request = new StringRequest(Request.Method.POST, getResumeUrl, new Response.Listener<String>() { @Override public void onResponse(String response) { showWait(false); try { JSONObject js = new JSONObject(response); JSONObject statusjs = js .getJSONObject("ResponseStatus"); int status = statusjs.getInt("status"); if (status == 2) { JSONObject myResumeJson = js .getJSONObject("MyResumeResponse"); re = (MyResume) JsonUtil.jsonToBean( myResumeJson, MyResume.class); isLoadData = true; if (re.getPicture_1() != null && !"".equals(re.getPicture_1())) { url1 = Url.GETPIC + re.getPicture_1(); imagesUrls[0] = url1; myCountPic++; new Thread() { public void run() { checkPhotoExits(re.getPicture_1(), button1); } }.start(); } if (re.getPicture_2() != null && !"".equals(re.getPicture_2())) { url2 = Url.GETPIC + re.getPicture_2(); imagesUrls[1] = url2; myCountPic++; new Thread() { public void run() { checkPhotoExits(re.getPicture_2(), button2); } }.start(); } if (re.getPicture_3() != null && !"".equals(re.getPicture_3())) { url3 = Url.GETPIC + re.getPicture_3(); imagesUrls[2] = url3; myCountPic++; new Thread() { public void run() { checkPhotoExits(re.getPicture_3(), button3); } }.start(); } if (re.getPicture_4() != null && !"".equals(re.getPicture_4())) { url4 = Url.GETPIC + re.getPicture_4(); imagesUrls[3] = url4; myCountPic++; new Thread() { public void run() { checkPhotoExits(re.getPicture_4(), button4); } }.start(); } if (re.getPicture_5() != null && !"".equals(re.getPicture_5())) { url5 = Url.GETPIC + re.getPicture_5(); imagesUrls[4] = url5; myCountPic++; new Thread() { public void run() { checkPhotoExits(re.getPicture_5(), button5); } }.start(); } if (re.getPicture_6() != null && !"".equals(re.getPicture_6())) { url6 = Url.GETPIC + re.getPicture_6(); imagesUrls[5] = url6; myCountPic++; new Thread() { public void run() { checkPhotoExits(re.getPicture_6(), button6); } }.start(); } my_pic.setText("我的照片(" + myCountPic + "/6)"); // 赋值 my_name.setText(re.getName()); int sexInt = re.getSex(); if (sexInt == 0) { my_sex.setText("女性"); my_sex.setTextColor(getResources() .getColor(R.color.ziti_black)); } else if (sexInt == -1) { my_sex.setText("未填写"); } else { my_sex.setText("男性"); my_sex.setTextColor(getResources() .getColor(R.color.ziti_black)); } if (re.getBirthdate() != null && re.getBirthdate().equals( "2015-01-01") == false) { my_birthyday.setText(re.getBirthdate()); my_birthyday.setTextColor(getResources() .getColor(R.color.ziti_black)); } if (re.getHeight() != -1) { my_shengao.setText(re.getHeight() + ""); } if (re.getGraduate() != null) { my_biye.setText(re.getGraduate()); } if (re.getEducation() != null) { my_xueli.setText(re.getEducation()); my_xueli.setTextColor(getResources() .getColor(R.color.ziti_black)); } // 三围 if (re.getBbh() != null) { my_sanwei.setText(re.getBbh() + ""); } // 三围end int jkz = re.getHealth_record(); if (jkz != -1) { if (jkz == 0) { my_jiankongzheng.setText("无"); my_jiankongzheng .setTextColor(getResources() .getColor( R.color.ziti_black)); } else { my_jiankongzheng.setText("有"); my_jiankongzheng .setTextColor(getResources() .getColor( R.color.ziti_black)); } } if ((re.getCloth_weight() != null) && (!re.getCloth_weight().equals("-1"))) { my_yifuchima.setText(re.getCloth_weight()); my_yifuchima.setTextColor(getResources() .getColor(R.color.ziti_black)); } else { my_yifuchima.setText("未填写"); } int shoes = re.getShoe_weight(); if (shoes != -1 && shoes != 0) { my_shoos.setText(re.getShoe_weight() + ""); my_shoos.setTextColor(getResources() .getColor(R.color.ziti_black)); } else { my_shoos.setText("未填写"); } if ((re.getLanguage() != null) && (!re.getLanguage().equals("-1"))) { my_language.setText(re.getLanguage()); my_language.setTextColor(getResources() .getColor(R.color.ziti_black)); } if (re.getSummary() != null) { my_jinyan.setText(re.getSummary()); } savaPersonJianliInfor();// 获取网络信息成功,保存简历信息 } else { showToast("用户不存在"); } } catch (JSONException e) { e.printStackTrace(); getPersonJianliInfor();// 网络请求失败调用本地简历信息 } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { // showToast("加载数据失败,请重新加载该页面"); showWait(false); getPersonJianliInfor();// 网络请求失败调用本地简历信息 } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<String, String>(); map.put("user_id", userId); return map; } }; queue.add(request); request.setRetryPolicy(new DefaultRetryPolicy( ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f)); } // 图片点击加载 @OnClick({ R.id.button1, R.id.button2, R.id.button3, R.id.button4, R.id.button5, R.id.button6 }) public void photoOnClick(View view) { switch (view.getId()) { case R.id.button1: imageBrower(0, imagesUrls); break; case R.id.button2: imageBrower(1, imagesUrls); break; case R.id.button3: imageBrower(2, imagesUrls); break; case R.id.button4: imageBrower(3, imagesUrls); break; case R.id.button5: imageBrower(4, imagesUrls); break; case R.id.button6: imageBrower(5, imagesUrls); break; default: break; } } // 已做缓存处理 private void imageBrower(int position, String[] urls) { Intent intent = new Intent(); intent.setClass(MyResumeActivity.this, ImagePagerActivity.class); // 图片url,为了演示这里使用常量,一般从数据库中或网络中获取 intent.putExtra(ImagePagerActivity.EXTRA_IMAGE_URLS, urls); intent.putExtra(ImagePagerActivity.EXTRA_IMAGE_INDEX, position); startActivityForResult(intent, 100); /* * code = new * ImagePopupWindow(MyResumeActivity.this,urls,position,userId); * * // 显示窗口 (设置layout在PopupWindow中显示的位置) * code.showAtLocation(MyResumeActivity * .this.findViewById(R.id.me_my_main), Gravity.BOTTOM | * Gravity.CENTER_HORIZONTAL, 0, 0); */ } /** * 读取图片的旋转的角度 * * @param path * 图片绝对路径 * @return 图片的旋转角度 */ private int getBitmapDegree(String path) { int degree = 0; try { // 从指定路径下读取图片,并获取其EXIF信息 ExifInterface exifInterface = new ExifInterface(path); // 获取图片的旋转信息 int orientation = exifInterface.getAttributeInt( ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_90: degree = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: degree = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: degree = 270; break; } } catch (IOException e) { e.printStackTrace(); } return degree; } /** * 将图片按照某个角度进行旋转 * * @param bm * 需要旋转的图片 * @param degree * 旋转角度 * @return 旋转后的图片 */ private Bitmap rotateBitmapByDegree(Bitmap bm, int degree) { Bitmap returnBm = null; // 根据旋转角度,生成旋转矩阵 Matrix matrix = new Matrix(); matrix.postRotate(degree); try { // 将原始图片按照旋转矩阵进行旋转,并得到新的图片 returnBm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true); } catch (OutOfMemoryError e) { } if (returnBm == null) { returnBm = bm; } if (bm != returnBm) { bm.recycle(); } return returnBm; } @Override protected void onDestroy() { super.onDestroy(); if (null != pngBM) { pngBM.recycle(); pngBM = null; } } // 有的三星手机调用系统照相机就ondestroy @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } // 返回結果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode != RESULT_CANCELED) { // 弹出拍照上传、相册中取、取消的pop弹出框 if (requestCode == 100) { // 位置标识:1-正面近脸,2-正面半身,3-正面全身,4-任意个照第1张,5-任意个照第2张,6-任意个照第3张 String position = data.getExtras().getString("position"); totalPic = data.getExtras().getString("totalPic"); my_pic.setText("我的照片(" + totalPic + "/6)"); type = position; UploadImg.showSheetPic(MyResumeActivity.this, MyResumeActivity.this, MyResumeActivity.this, MyResumeActivity.this); } } if (resultCode != RESULT_CANCELED) { switch (requestCode) { // 相册中选取 case IMAGE_REQUEST_CODE: // 位置固定 只能固定大小 // UploadImg.startPhotoZoom(data.getData(),MyResumeActivity.this,408,534); double sd = Double.valueOf(width); double d = sd * 1.4; if (data.getData() != null) { UploadImg.startPhotoZoom(data.getData(), MyResumeActivity.this, width, (int) d); } else { ToastUtil.showShortToast("获取图片失败。。。"); } break; // 拍照上传 case CAMERA_REQUEST_CODE: if (Util.hasSdcard()) { File tempFile = new File( Environment.getExternalStorageDirectory() + "/" + IMAGE_FILE_NAME); double sds = Double.valueOf(width); double dd = sds * 1.4; BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inJustDecodeBounds = true; pngBM = BitmapFactory.decodeFile( Environment.getExternalStorageDirectory() + "/" + IMAGE_FILE_NAME, opt); // 获取到这个图片的原始宽度和高度 int picWidth = opt.outWidth; int picHeight = opt.outHeight; // 获取屏的宽度和高度 WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); int screenWidth = display.getWidth(); int screenHeight = display.getHeight(); opt.inSampleSize = 2; if (picWidth > picHeight) { if (picWidth > screenWidth) opt.inSampleSize = picWidth / screenWidth; } else { if (picHeight > screenHeight) opt.inSampleSize = picHeight / screenHeight; } int degree = getBitmapDegree(Environment .getExternalStorageDirectory() + "/" + IMAGE_FILE_NAME); opt.inJustDecodeBounds = false; pngBM = BitmapFactory.decodeFile( Environment.getExternalStorageDirectory() + "/" + IMAGE_FILE_NAME, opt); pngBM = rotateBitmapByDegree(pngBM, degree); try { // tt_uri = // Uri.parse(MediaStore.Images.Media.insertImage( // getContentResolver(), // Environment.getExternalStorageDirectory() + "/" // + IMAGE_FILE_NAME, null, null)); tt_uri = Uri.parse(MediaStore.Images.Media.insertImage( getContentResolver(), pngBM, null, null)); } catch (Exception e) { e.printStackTrace(); // tt_uri = Uri.fromFile(tempFile); return; } if (tt_uri != null) { UploadImg.startPhotoZoom(tt_uri, MyResumeActivity.this, width, (int) dd); } else { showToast("未找到存储卡,无法存储照片"); } } else { showToast("未找到存储卡,无法存储照片"); } break; case RESULT_REQUEST_CODE: // 上传图片后回调上传成功或失败关闭loading加载框 if (data != null) { if (null != type) { if (type.equals("1")) { loadProgressBar.setVisibility(View.VISIBLE); UploadImg.getImageToView(MyResumeActivity.this, data, button1, uploadPicUrl, null, "type", type, "file", null, "user_id", userId, loadProgressBar, null); } if (type.equals("2")) { loadProgressBar.setVisibility(View.VISIBLE); UploadImg.getImageToView(MyResumeActivity.this, data, button2, uploadPicUrl, null, "type", type, "file", null, "user_id", userId, loadProgressBar, null); } if (type.equals("3")) { loadProgressBar.setVisibility(View.VISIBLE); UploadImg.getImageToView(MyResumeActivity.this, data, button3, uploadPicUrl, null, "type", type, "file", null, "user_id", userId, loadProgressBar, null); } if (type.equals("4")) { loadProgressBar.setVisibility(View.VISIBLE); UploadImg.getImageToView(MyResumeActivity.this, data, button4, uploadPicUrl, null, "type", type, "file", null, "user_id", userId, loadProgressBar, null); } if (type.equals("5")) { loadProgressBar.setVisibility(View.VISIBLE); UploadImg.getImageToView(MyResumeActivity.this, data, button5, uploadPicUrl, null, "type", type, "file", null, "user_id", userId, loadProgressBar, null); } if (type.equals("6")) { loadProgressBar.setVisibility(View.VISIBLE); UploadImg.getImageToView(MyResumeActivity.this, data, button6, uploadPicUrl, null, "type", type, "file", null, "user_id", userId, loadProgressBar, null); } } else { } } else { } break; default: break; } } super.onActivityResult(requestCode, resultCode, data); } // @OnClick({ R.id.sex_layout, R.id.borthday_layout, R.id.my_xueli_layout, R.id.my_jiankongzheng_layout, R.id.my_yifuchima_layout, R.id.my_shoos_layout, R.id.my_language_layout }) public void sexOnclick(View view) { switch (view.getId()) { case R.id.sex_layout: ActionSheet.showSheetSex(MyResumeActivity.this, MyResumeActivity.this, MyResumeActivity.this, my_sex); break; case R.id.borthday_layout: ActionSheet.showSheetBorthdayTime(MyResumeActivity.this, MyResumeActivity.this, MyResumeActivity.this, my_birthyday); break; case R.id.my_xueli_layout: ActionSheet.showSheetXueli(MyResumeActivity.this, MyResumeActivity.this, MyResumeActivity.this, my_xueli); break; case R.id.my_jiankongzheng_layout: ActionSheet.showSheetJianKZ(MyResumeActivity.this, MyResumeActivity.this, MyResumeActivity.this, my_jiankongzheng); break; case R.id.my_yifuchima_layout: ActionSheet.showSheetYiFZM(MyResumeActivity.this, MyResumeActivity.this, MyResumeActivity.this, my_yifuchima); break; case R.id.my_shoos_layout: ActionSheet.showSheetShoos(MyResumeActivity.this, MyResumeActivity.this, MyResumeActivity.this, my_shoos); break; case R.id.my_language_layout: ActionSheet.showSheetLanguage(MyResumeActivity.this, MyResumeActivity.this, MyResumeActivity.this, my_language); break; default: break; } } @OnClick(R.id.submit) public void submitOnclick(View v) { saveData(); if (check()) { showWait(true); StringRequest request = new StringRequest(Request.Method.POST, submintUrl, new Response.Listener<String>() { @Override public void onResponse(String response) { showWait(false); try { JSONObject js = new JSONObject(response); JSONObject statusjs = js .getJSONObject("ResponseStatus"); int status = statusjs.getInt("status"); if (status == 2) { showToast("更新成功"); finish(); } else { showToast("用户不存在"); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { showWait(false); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { return JsonHelper.toMap(re); } }; queue.add(request); request.setRetryPolicy(new DefaultRetryPolicy( ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f)); } } @Override public void onClick(int whichButton) { } @OnClick(R.id.mePreview) public void toShow(View view) { if (isLoadData) { saveData(); Intent intent = new Intent(); intent.setClass(this, MyResumeScanActivity.class); Bundle bundle = new Bundle(); bundle.putSerializable("myResume", re); bundle.putBoolean("showtitile", false); intent.putExtras(bundle); startActivity(intent); } else { showToast("加载数据失败,请重新加载该页面"); } } @Override public void onCancel(DialogInterface dialog) { } public void saveData() { if (userId != null && !"".equals(userId)) re.setUser_id(Integer.valueOf(userId)); /* * if(Util.isEmpty(my_name.getText().toString())){ * re.setName(my_name.getText().toString()); } */ if (!my_sex.getText().toString().equals("未填写")) { if (my_sex.getText().toString().equals("女性")) { re.setSex(0); } else { re.setSex(1); } } else { re.setSex(-1); } if (my_birthyday.getText().toString().equals("未填写")) { // re.setBirthdate(my_birthyday.getText().toString()); } else { re.setBirthdate(my_birthyday.getText().toString()); } if (Util.isEmpty(my_shengao.getText().toString())) { re.setHeight(Integer.valueOf(my_shengao.getText().toString())); } else { re.setHeight(0); } if (Util.isEmpty(my_biye.getText().toString())) { re.setGraduate(my_biye.getText().toString()); } else { re.setGraduate(""); } if (!my_xueli.getText().toString().equals("未填写")) { re.setEducation(my_xueli.getText().toString()); } // 三围 if (Util.isEmpty(my_sanwei.getText().toString())) { re.setBbh(my_sanwei.getText().toString()); } // 三围end if (!my_jiankongzheng.getText().toString().equals("未填写")) { if (my_jiankongzheng.getText().toString().equals("无")) { re.setHealth_record(0); } if (my_jiankongzheng.getText().toString().equals("有")) { re.setHealth_record(1); } } else { re.setHealth_record(-1); } if (!my_yifuchima.getText().toString().equals("未填写")) { re.setCloth_weight(my_yifuchima.getText().toString()); } if (!my_shoos.getText().toString().equals("未填写")) { re.setShoe_weight(Integer.valueOf(my_shoos.getText().toString())); } else { re.setShoe_weight(0); } if (!my_language.getText().toString().equals("未填写")) { re.setLanguage(my_language.getText().toString()); } if (!my_jinyan.getText().toString().equals("未填写")) { re.setSummary(my_jinyan.getText().toString()); } } /** * @Description: 加载图片 * @author howe * @date 2014-7-30 下午5:57:52 * */ public void loadpersonPic(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(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)); } public boolean check() { if (!Util.isEmpty(my_sex.getText().toString()) || (my_sex.getText().toString().equals("未填写"))) { showToast("请输性别"); return false; } if (!Util.isEmpty(my_birthyday.getText().toString()) || (my_birthyday.getText().toString().equals("未填写"))) { showToast("请输入生日"); return false; } if (!Util.heightCheck(my_shengao.getText().toString())) { showToast("身高范围应该为140-200"); return false; } if (!Util.isEmpty(my_biye.getText().toString())) { showToast("请输入就读/毕业学校"); return false; } if (my_xueli.getText().toString().equals("未填写")) { showToast("请选择学历"); return false; } if (!Util.isEmpty(my_jinyan.getText().toString())) { showToast("经历简述不能为空"); return false; } if (MIN_COUNT < 20) { showToast("经历简述必须不少于20个字"); return false; } return true; } private TextWatcher mTextWatcher = new TextWatcher() { private CharSequence temp; private int selectionEnd; public void afterTextChanged(Editable s) { MIN_COUNT = temp.length(); selectionEnd = my_jinyan.getSelectionEnd(); my_jinyan.setSelection(selectionEnd);// 设置光标在最后 } public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { temp = s; } }; }