From 1253adf41438d647ba092cce42499faa035d310c Mon Sep 17 00:00:00 2001 From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674> Date: 星期一, 15 五月 2017 13:14:03 +0800 Subject: [PATCH] --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java | 69 +++++++++++++++++++++++++++++----- 1 files changed, 58 insertions(+), 11 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 3cae29f..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; @@ -46,6 +50,7 @@ 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; @@ -109,6 +114,8 @@ public static long selectedSurveillancePhotoId = -1; public static long selectedCustomPhotoId = -1; + + private File idCardImageCaptureFile = null; private static RegisterFragment instance = new RegisterFragment(); @@ -325,18 +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(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); + 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(); } @@ -454,10 +495,16 @@ @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 -- Gitblit v1.8.0