From 32ab1ec81cb375a2f862de7f4def1c36d8c04b7d Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期二, 16 五月 2017 11:37:39 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java |  109 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 89 insertions(+), 20 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 1059533..8863733 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,14 +1,18 @@
 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.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;
@@ -28,6 +32,7 @@
 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;
@@ -45,6 +50,8 @@
 import org.xutils.http.RequestParams;
 
 import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -104,6 +111,11 @@
 
     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();
 
@@ -253,7 +265,8 @@
 
     public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) {
         surveillanceQueryItem_selectPhoto = item;
-        fragment_register_surveillance_photo.setImageBitmap(item.getBitmap());
+        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);
@@ -261,7 +274,8 @@
 
     public void set_fragment_register_upload_custom_photo(SurveillanceQueryItem item) {
         surveillanceQueryItem_uploadPhoto = item;
-        fragment_register_upload_custom_photo.setImageBitmap(item.getBitmap());
+        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);
@@ -318,17 +332,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();
             }
@@ -336,6 +385,8 @@
     }
 
     public void resetForm() {
+        selectedCustomPhotoId = -1;
+        selectedSurveillancePhotoId = -1;
         fragment_register_name.setValue("寰愪慨婧�"+Math.random());
         fragment_register_phone.setValue("13691348767");
         fragment_register_gender.setValue("鐢�");
@@ -368,7 +419,7 @@
             public void onSelected(String value) {
                 fragment_register_country.setValue(value);
             }
-        });
+        },fragment_register_country.getValue());
     }
 
     //@OnClick(R.id.fragment_register_gender)
@@ -377,17 +428,28 @@
             public void onSelected(String value) {
                 fragment_register_gender.setValue(value);
             }
-        });
+        }, fragment_register_gender.getValue());
     }
 
     //@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)
@@ -396,7 +458,7 @@
             public void onSelected(String value) {
                 fragment_register_visitor_class.setValue(value);
             }
-        });
+        }, fragment_register_visitor_class.getValue());
     }
 
     //@OnClick(R.id.fragment_register_id_class)
@@ -405,7 +467,7 @@
             public void onSelected(String value) {
                 fragment_register_id_class.setValue(value);
             }
-        });
+        }, fragment_register_id_class.getValue());
     }
 
     @OnClick(R.id.fragment_register_back)
@@ -419,7 +481,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)
@@ -428,15 +490,21 @@
         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(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
@@ -451,7 +519,8 @@
     }
 
     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);
     }

--
Gitblit v1.8.0