From f6fcbe3c965b4ad906ac8b327bb5b301c0ebd348 Mon Sep 17 00:00:00 2001 From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674> Date: 星期三, 28 六月 2017 11:53:38 +0800 Subject: [PATCH] --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java | 297 ++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 231 insertions(+), 66 deletions(-) diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java index 331170e..2962278 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java @@ -1,18 +1,26 @@ package cn.com.basic.face.fragment; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.net.Uri; +import android.os.AsyncTask; +import android.os.Environment; import android.provider.MediaStore; import android.util.Base64; import android.util.DisplayMetrics; +import android.view.MotionEvent; import android.view.View; +import android.view.WindowManager; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.bsk.zhangbo.demoforbsk.R; import cn.com.basic.face.adapter.SurveillanceFragment; @@ -21,18 +29,23 @@ import cn.com.basic.face.base.PictureTaker; import cn.com.basic.face.dialog.SurveillancePhotoDialog; import cn.com.basic.face.discern.common.CommonVariables; +import cn.com.basic.face.discern.common.ResultBean; import cn.com.basic.face.discern.entity.Register; import cn.com.basic.face.discern.query.item.CheckInQueryItem; import cn.com.basic.face.discern.query.item.SurveillanceQueryItem; import cn.com.basic.face.service.DictionaryMng; import cn.com.basic.face.service.RegisterMng; import cn.com.basic.face.service.SurveillanceMng; +import cn.com.basic.face.util.BitmapUtil; import cn.com.basic.face.util.Constant; +import cn.com.basic.face.util.NativeImg; import cn.com.basic.face.util.OkClickedListener; import cn.com.basic.face.util.AppApi; import cn.com.basic.face.dialog.DateSelectDialog; import cn.com.basic.face.dialog.CountryDialog; +import cn.com.basic.face.util.PostData; +import cn.com.basic.face.util.Uploader; import cn.com.basic.face.widget.register.RegisterRightFieldLabelView; import cn.com.basic.face.widget.register.RegisterRightFieldTextView; import cn.com.basic.face.dialog.SelectDialog; @@ -40,9 +53,14 @@ import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; +import org.xutils.common.util.FileUtil; import org.xutils.http.RequestParams; +import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -100,7 +118,13 @@ private Bitmap fragment_register_upload_custom_photo_img; private Bitmap fragment_register_id_card_photo_img; - private SurveillanceQueryItem surveillanceQueryItem; + private SurveillanceQueryItem surveillanceQueryItem_selectPhoto; + private SurveillanceQueryItem surveillanceQueryItem_uploadPhoto; + + public static long selectedSurveillancePhotoId = -1; + public static long selectedCustomPhotoId = -1; + + private File idCardImageCaptureFile = null; private static RegisterFragment instance = new RegisterFragment(); @@ -117,22 +141,43 @@ resetForm(); } + private File writeToFile(String fileName, byte[] fileBytes) { + try { + String dir = MainActivity.getInstance().getFilesDir().getAbsolutePath(); + + File file = new File(dir, fileName); + if (file.exists()) { + file.delete(); + } + file.createNewFile(); + BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dir, fileName))); + bos.write(fileBytes); + bos.flush(); + bos.close(); + return new File(dir, fileName); + }catch (Exception e) { + e.printStackTrace(); + } + return null; + } + @OnClick(R.id.fragment_register_save) public void fragment_register_save_click(View v) { - RequestParams params = new RequestParams(); - DisplayMetrics metrics = getActivity().getResources().getDisplayMetrics(); +// RegisterMng.getInstance().add(null); +// if (1==1) { +// return; +// } - int h1 = fragment_register_surveillance_photo.getHeight(); - int h2 = fragment_register_upload_custom_photo.getHeight(); - int h3 = fragment_register_id_card_photo.getHeight(); - - DisplayMetrics displayMetrics = BaseApplication.getInstance().getResources().getDisplayMetrics(); - float dpHeight = displayMetrics.heightPixels / displayMetrics.density; - float dpWidth = displayMetrics.widthPixels / displayMetrics.density; - - if (1==1) { - //return; + if (!BaseApplication.deviceAvailable) { + return; } + +// SurveillanceMng.getInstance().addBitmap(new ArrayList(), new byte[]{1,2,3}, 3, "1"); +// +// if (1==1) { +// return; +// } + RequestParams params = new RequestParams(); String name = fragment_register_name.getValue(); if (name.trim().length() <= 0) { @@ -194,63 +239,130 @@ fragment_register_visitor_class.callOnClick(); return; } + final PostData pd = new PostData(); + + pd.addValue(Register.FieldNames.username, name); + pd.addValue(Register.FieldNames.mobilePhone, phone); + pd.addValue(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(gender)); + pd.addValue(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(id_class)); + pd.addValue(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(country)); + pd.addValue(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_class)); + pd.addValue(Register.FieldNames.identifyNum, id_num); + pd.addValue(Register.FieldNames.companyId, company); + pd.addValue(Register.FieldNames.birthday, birthday); + + params.addBodyParameter(Register.FieldNames.username, name); params.addBodyParameter(Register.FieldNames.mobilePhone, phone); params.addBodyParameter(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(gender)); params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(id_class)); params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(country)); + params.addBodyParameter(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_class)); params.addBodyParameter(Register.FieldNames.identifyNum, id_num); params.addBodyParameter(Register.FieldNames.companyId, company); params.addBodyParameter(Register.FieldNames.birthday, birthday); - if (surveillanceQueryItem != null) { - params.addBodyParameter("width", surveillanceQueryItem.getWidth()); - params.addBodyParameter("height", surveillanceQueryItem.getHeight()); - fragment_register_surveillance_photo_img = surveillanceQueryItem.getBitmap(); - params.addBodyParameter("base64Image", surveillanceQueryItem.getBase64Image()); + + if (surveillanceQueryItem_selectPhoto != null) { + params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth()); + params.addBodyParameter("height", surveillanceQueryItem_selectPhoto.getHeight()); + fragment_register_surveillance_photo_img = surveillanceQueryItem_selectPhoto.getBitmap(); + + NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg(); + byte[] imageBytes = new byte[nativeImg.size]; + for (int i = 0; i < nativeImg.size; i++) { + imageBytes[i] = nativeImg.image[i]; + } + pd.addData("rawSurveillancePhoto", "application/octet-stream", imageBytes); + + params.addBodyParameter("rawSurveillancePhoto", writeToFile("rawSurveillancePhoto", imageBytes)); + } else { + params.addBodyParameter("rawSurveillancePhoto", writeToFile("rawSurveillancePhoto", new byte[]{})); } if (fragment_register_surveillance_photo_img != null) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); fragment_register_surveillance_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); byte[] imageBytes = byteArrayOutputStream.toByteArray(); - String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); - params.addBodyParameter(Register.FieldNames.surveillancePhoto, encodedImage); + pd.addData(Register.FieldNames.surveillancePhoto, "application/octet-stream", imageBytes); + + params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", imageBytes)); + } else { + params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", new byte[]{})); } if (fragment_register_upload_custom_photo_img != null) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); fragment_register_upload_custom_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); byte[] imageBytes = byteArrayOutputStream.toByteArray(); - String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); - params.addBodyParameter(Register.FieldNames.uploadCustomPhoto, encodedImage); + pd.addData(Register.FieldNames.uploadCustomPhoto, "application/octet-stream", imageBytes); + + params.addBodyParameter("uploadCustomPhoto", writeToFile("uploadCustomPhoto", imageBytes)); + } else { + params.addBodyParameter("uploadCustomPhoto", writeToFile("uploadCustomPhoto", new byte[]{})); } if (fragment_register_id_card_photo_img != null) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); fragment_register_id_card_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); byte[] imageBytes = byteArrayOutputStream.toByteArray(); - String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); - params.addBodyParameter(Register.FieldNames.idCardPhoto, encodedImage); + pd.addData(Register.FieldNames.idCardPhoto, "application/octet-stream", imageBytes); + + params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", imageBytes)); + } else { + params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", new byte[]{})); } + + + class ConnectionTask extends AsyncTask<String, Void, String> { + private String json = ""; + @Override + protected String doInBackground(String... urls) { + try { +// Uploader uploader = new Uploader("", AppApi.BASE_URL + AppApi.REGISTER_ADD); +// json = uploader.upload("", pd); + return json; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @Override + protected void onPostExecute(String result) { + try { + Toast.makeText(BaseApplication.getInstance(),"娣诲姞鎴愬姛", Toast.LENGTH_SHORT).show(); + //RegisterFragment.getInstance().resetForm(); + } catch(Exception e) { + e.printStackTrace(); + } + } + + } +// ConnectionTask task = new ConnectionTask(); +// String[] params1 = new String[2]; +// task.execute(params1); RegisterMng.getInstance().add(params); } public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) { - fragment_register_surveillance_photo.setImageBitmap(item.getBitmap()); + surveillanceQueryItem_selectPhoto = item; + fragment_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(), + (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp))); fragment_register_surveillance_photo_img = item.getBitmap(); fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE); fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE); } public void set_fragment_register_upload_custom_photo(SurveillanceQueryItem item) { - fragment_register_upload_custom_photo.setImageBitmap(item.getBitmap()); + surveillanceQueryItem_uploadPhoto = item; + fragment_register_upload_custom_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(), + (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp))); fragment_register_upload_custom_photo_img = item.getBitmap(); fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE); fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE); - } @Override @@ -275,24 +387,17 @@ try { Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri); fragment_register_upload_custom_photo.setImageBitmap(bitmap); - //fragment_register_upload_custom_photo_img = bitmap; fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE); fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE); List<SurveillanceQueryItem> bitmapList = new ArrayList<>(); SurveillanceQueryItem item = new SurveillanceQueryItem(); -// item.setBitmap(bitmap); item.setWidth(bitmap.getWidth()+""); item.setHeight(bitmap.getHeight()+""); item.setLocalUri(uri); -// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); -// bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); -// byte[] imageBytes = byteArrayOutputStream.toByteArray(); -// String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); -// item.setBase64Image(encodedImage); - setSurveillanceQueryItem(item); + setSurveillanceQueryItem_selectPhoto(item); bitmapList.add(item); bitmapList.add(item); bitmapList.add(item); @@ -303,17 +408,52 @@ e.printStackTrace(); } } - if (requestCode == fragment_register_id_card_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) { - Uri uri = data.getData(); + if (requestCode == fragment_register_id_card_photo_ && resultCode == Activity.RESULT_OK) { + try { - Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri); - fragment_register_id_card_photo.setImageBitmap(bitmap); - fragment_register_id_card_photo_img = bitmap; - MainActivity.getInstance().getContentResolver().delete(uri, null, null); + if (data != null && data.getData() != null) { + Uri uri = data.getData(); + Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri); + fragment_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap, + (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp))); + fragment_register_id_card_photo_img = bitmap; + MainActivity.getInstance().getContentResolver().delete(uri, null, null); - fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE); - fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE); + fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE); + fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE); + } else if (idCardImageCaptureFile != null){ + if (idCardImageCaptureFile.exists()) { + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options); + int width = options.outWidth; + int height = options.outHeight; + WindowManager wm = (WindowManager) MainActivity.getInstance().getSystemService(Context.WINDOW_SERVICE); + int screenWidth = wm.getDefaultDisplay().getWidth(); + int screenHeight = wm.getDefaultDisplay().getHeight(); + int dx = width / screenWidth; + int dy = height / screenHeight; + int scale = 1; + if (dx > dy && dy >= 1) { + scale = dx; + } + if (dy > dx && dx >= 1) { + scale = dy; + } + options.inSampleSize = scale; + options.inJustDecodeBounds = false; + Bitmap bitmap = BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options); + fragment_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap, + (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp))); + fragment_register_id_card_photo_img = bitmap; + MainActivity.getInstance().getContentResolver().delete(Uri.fromFile(idCardImageCaptureFile), null, null); + + fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE); + fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE); + idCardImageCaptureFile = null; + } + } } catch (Exception e) { e.printStackTrace(); } @@ -321,15 +461,26 @@ } public void resetForm() { + selectedCustomPhotoId = -1; + selectedSurveillancePhotoId = -1; + fragment_register_name.setValue("寰愪慨婧�"+Math.random()); fragment_register_phone.setValue("13691348767"); - fragment_register_gender.setValue("鐢�"); - fragment_register_id_class.setValue("韬唤璇�"); - fragment_register_country.setValue("涓浗"); fragment_register_id_num.setValue("36041419292222222"); fragment_register_birthday.setValue("1985-08-12"); fragment_register_company.setValue("璐濇�濈"); fragment_register_remark.setValue("澶囨敞"); + + fragment_register_name.setValue(""); + fragment_register_phone.setValue(""); + fragment_register_id_num.setValue(""); + fragment_register_birthday.setValue(""); + fragment_register_company.setValue(""); + fragment_register_remark.setValue(""); + + fragment_register_gender.setValue("鐢�"); + fragment_register_id_class.setValue("韬唤璇�"); + fragment_register_country.setValue("涓浗"); fragment_register_visitor_class.setValue("鏅�氳瀹�"); fragment_register_surveillance_photo_img = null; fragment_register_upload_custom_photo_img = null; @@ -343,53 +494,65 @@ fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.VISIBLE); fragment_register_id_card_photo_placeholder_image.setVisibility(View.VISIBLE); fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.VISIBLE); - this.surveillanceQueryItem = null; + this.surveillanceQueryItem_selectPhoto = null; + this.surveillanceQueryItem_uploadPhoto = null; } - @OnClick(R.id.fragment_register_country) + //@OnClick(R.id.fragment_register_country) public void fragment_register_country_click(View view) { new CountryDialog(fragment_register_linear_layout, new OkClickedListener() { public void onSelected(String value) { fragment_register_country.setValue(value); } - }); + },fragment_register_country.getValue()); } - @OnClick(R.id.fragment_register_gender) + //@OnClick(R.id.fragment_register_gender) public void fragment_register_gender_click(View view) { new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.GENDER, new OkClickedListener() { public void onSelected(String value) { fragment_register_gender.setValue(value); } - }); + }, fragment_register_gender.getValue()); } - @OnClick(R.id.fragment_register_birthday) + //@OnClick(R.id.fragment_register_birthday) public void fragment_register_birthday_click(View view) { + String birthdayStr = fragment_register_birthday.getValue(); + Date birthday = new Date(); + if (birthdayStr != null && !"".equals(birthdayStr)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + try { + birthday = sdf.parse(birthdayStr); + } catch (Exception e) { + e.printStackTrace(); + } + } + new DateSelectDialog( new OkClickedListener(){ public void onSelected(String value) { fragment_register_birthday.setValue(value); } - },new Date()); + }, birthday); } - @OnClick(R.id.fragment_register_visitor_class) + //@OnClick(R.id.fragment_register_visitor_class) public void fragment_register_visitor_class_click(View view) { new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.VISITOR_TYPE, new OkClickedListener() { public void onSelected(String value) { fragment_register_visitor_class.setValue(value); } - }); + }, fragment_register_visitor_class.getValue()); } - @OnClick(R.id.fragment_register_id_class) + //@OnClick(R.id.fragment_register_id_class) public void fragment_register_id_class_click(View view) { new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() { public void onSelected(String value) { fragment_register_id_class.setValue(value); } - }); + }, fragment_register_id_class.getValue()); } @OnClick(R.id.fragment_register_back) @@ -403,7 +566,7 @@ new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() { public void onSelected(String value) { } - }); + }, selectedSurveillancePhotoId); } @OnClick(R.id.fragment_register_upload_custom_photo) @@ -412,15 +575,16 @@ new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() { public void onSelected(String value) { } - }); + }, selectedCustomPhotoId); } @OnClick(R.id.fragment_register_id_card_photo) public void fragment_register_id_card_photo_click(View view) { - Intent takePicture = new Intent(MainActivity.getInstance(), PictureTaker.class); - startActivityForResult(takePicture, fragment_register_id_card_photo_); -// Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); -// startActivityForResult(takePicture, fragment_register_id_card_photo_); + Intent intent = new Intent(); + intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); + idCardImageCaptureFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg"); + intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(idCardImageCaptureFile)); + startActivityForResult(intent, fragment_register_id_card_photo_); } @Override @@ -435,13 +599,14 @@ } public void setChoosePhoto(Bitmap bitmap) { - fragment_register_surveillance_photo.setImageBitmap(bitmap); + fragment_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap, + (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp))); fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE); fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE); } - public void setSurveillanceQueryItem(SurveillanceQueryItem item) { - this.surveillanceQueryItem = item; + public void setSurveillanceQueryItem_selectPhoto(SurveillanceQueryItem item) { + this.surveillanceQueryItem_selectPhoto = item; } @Override -- Gitblit v1.8.0