From 930893176b2c027333e883e2de38d3330b3f6b3c Mon Sep 17 00:00:00 2001 From: wangbing Date: Tue, 26 Mar 2019 15:30:26 +0800 Subject: [PATCH] photo --- .../manger/callable/AndroidCallable.java | 1 + .../base/activity/QRcodeScanActivity.java | 2 +- .../java/base/activity/TakePhotoActivity.java | 72 +++++++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/modules/Android/app/src/main/java/base/activity/TakePhotoActivity.java diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/AndroidCallable.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/AndroidCallable.java index a0029bee..da50de5c 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/AndroidCallable.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/AndroidCallable.java @@ -116,6 +116,7 @@ public class AndroidCallable implements Callable { freeMarkerManager.outputTemp(new File(base, "BaseSPATakePhotoFragment.java"), "Android/app/src/main/java/base/BaseSPATakePhotoFragment.java", ctx); freeMarkerManager.outputTemp(new File(base, "IActivityResult.java"), "Android/app/src/main/java/base/IActivityResult.java", ctx); + freeMarkerManager.outputTemp(new File(activity, "TakePhotoActivity.java"), "Android/app/src/main/java/base/activity/TakePhotoActivity.java", ctx); if (option.fileselect) { freeMarkerManager.outputTemp(new File(activity, "FilePickerActivity.java"), "Android/app/src/main/java/base/activity/FilePickerActivity.java", ctx); } diff --git a/src/main/resources/modules/Android/app/src/main/java/base/activity/QRcodeScanActivity.java b/src/main/resources/modules/Android/app/src/main/java/base/activity/QRcodeScanActivity.java index 5ade0cca..d9c60566 100644 --- a/src/main/resources/modules/Android/app/src/main/java/base/activity/QRcodeScanActivity.java +++ b/src/main/resources/modules/Android/app/src/main/java/base/activity/QRcodeScanActivity.java @@ -5,7 +5,7 @@ import android.os.Bundle; import android.os.PersistableBundle; import android.view.KeyEvent; -import ${domain}.android.R; +import ${package}.R; import com.journeyapps.barcodescanner.CaptureManager; import com.journeyapps.barcodescanner.DecoratedBarcodeView; diff --git a/src/main/resources/modules/Android/app/src/main/java/base/activity/TakePhotoActivity.java b/src/main/resources/modules/Android/app/src/main/java/base/activity/TakePhotoActivity.java new file mode 100644 index 00000000..9e8525d1 --- /dev/null +++ b/src/main/resources/modules/Android/app/src/main/java/base/activity/TakePhotoActivity.java @@ -0,0 +1,72 @@ +package ${domain}.base.activity; + +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; + +import ${domain}.base.Consant; +import ${domain}.base.util.StorageUtil; +import com.jph.takephoto.app.TakePhoto; +import com.jph.takephoto.compress.CompressConfig; +import com.jph.takephoto.model.TImage; +import com.jph.takephoto.model.TResult; + +import java.io.File; + +public class TakePhotoActivity extends com.jph.takephoto.app.TakePhotoActivity { + + public static final String POSITION_PARAM = "position_param"; + public static final String POSITION_CAPTURE = "capture"; + public static final String POSITION_GALLERY = "gallery"; + public static final String POSITION_DOCUMENTS = "documents"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + TakePhoto takePhoto = getTakePhoto(); + configCompress(takePhoto); + Intent intent = getIntent(); + String stringExtra = intent.getStringExtra(POSITION_PARAM); + if (POSITION_CAPTURE.equals(stringExtra)) { + takePhoto.onPickFromCapture(getImageCropUri()); + } else if (POSITION_GALLERY.equals(stringExtra)) { + takePhoto.onPickFromGallery(); + } else { + takePhoto.onPickFromDocuments(); + } + } + + //获得照片的输出保存Uri + private Uri getImageCropUri() { + File file = new File(StorageUtil.getOwnCacheDirectory(this, Consant.DIR_IMG), System.currentTimeMillis() + ".jpg"); + if (!file.getParentFile().exists()) file.getParentFile().mkdirs(); + return Uri.fromFile(file); + } + + private void configCompress(TakePhoto takePhoto) {//压缩配置 + CompressConfig config = new CompressConfig.Builder().setMaxSize(512 * 1024) + .setMaxPixel(800) + .enableReserveRaw(false)//拍照压缩后是否显示原图 + .create(); + takePhoto.onEnableCompress(config, false);//是否显示进度条 + } + + @Override + public void takeSuccess(TResult result) { + TImage image = result.getImage(); + Intent intent = new Intent(); + intent.putExtra("path", image.getCompressPath() != null ? image.getCompressPath() : image.getOriginalPath()); + setResult(RESULT_OK, intent); + finish(); + } + + @Override + public void takeFail(TResult result, String msg) { + super.takeFail(result, msg); + } + + @Override + public void takeCancel() { + super.takeCancel(); + } +}