我用示例中的代码可以实现相册选择图片并裁切功能
http://ask.dcloud.net.cn/question/8314
但是我在华为荣耀7测试的时候发现图库中并没有直接拍照功能,所以我想知道如何修改代码实现直接先打开摄像头拍照然后跳转到图像裁切。请问该如何实现呢?
下面是我现在的代码:
var IMAGE_UNSPECIFIED = "image/*";
var PHOTOZOOM = 2; // 获取完图片返回key
var PHOTOLAT = 1; // 剪裁完毕后返回key
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var MediaStore = plus.android.importClass("android.provider.MediaStore");
var File = plus.android.importClass("java.io.File");
var Uri = plus.android.importClass("android.net.Uri");
var intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_UNSPECIFIED);
main.startActivityForResult(intent, PHOTOZOOM);
main.onActivityResult = function(requestCode, resultCode, data) {
var outPutPath = plus.io.convertLocalFileSystemURL("5566.jpg");
if (PHOTOZOOM == requestCode) {
var file = new File(outPutPath);
// 输出目录uri
var outPutUri = Uri.fromFile(file);
if (data==undefined){
mui.toast("您已取消操作");
return false;
}
plus.android.importClass(data);
plus.android.importClass(data);
var uri = data.getData();
var cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setDataAndType(uri, IMAGE_UNSPECIFIED);
// 截图完毕后 输出目录
cropIntent.putExtra(MediaStore.EXTRA_OUTPUT, outPutUri);
cropIntent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
// outputX outputY 是裁剪图片宽高
cropIntent.putExtra("outputX", 160);
cropIntent.putExtra("outputY", 160);
cropIntent.putExtra("return-data", true);
console.log(uri);
main.startActivityForResult(cropIntent, PHOTOLAT);
} else if (requestCode == PHOTOLAT) {
// 判断 剪裁完后的图片输出是否存在
var file = new File(outPutPath);
var a = file.exists();
console.log(file);
console.log(a);
}
};
zhaoyari
试了一下,程序报错了,求助,能否亮源码
2017-06-22 19:15