private void chosePhoto() {
DialogUtil.showDoubleNoneTitleTextDialog(activity, "选择图片", "拍照",
"图库", new OnDialogClickListener() {
@Override
public boolean onClick(View v) {
takePicture();
return false;
}
}, new OnDialogClickListener() {
@Override
public boolean onClick(View v) {
openAlbum();
return false;
}
});
}
// 拍照
public void takePicture() {
String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File outDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
if (!outDir.exists()) {
outDir.mkdirs();
}
File outFile = new File(outDir, System.currentTimeMillis() + ".jpg");
picFileFullName = outFile.getAbsolutePath();
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(outFile));
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
} else {
Log.e(TAG, "请确认已经插入SD卡");
}
}
// 打开本地相册
public void openAlbum() {
Intent intentFromGallery = new Intent();
// 设置文件类型
intentFromGallery.setAction(Intent.ACTION_GET_CONTENT);
intentFromGallery.addCategory(Intent.CATEGORY_OPENABLE);
intentFromGallery.setType("image/*");
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
startActivityForResult(intentFromGallery, SELECT_PIC_KITKAT);
} else {
startActivityForResult(intentFromGallery, CREATE_REQUESTCODE);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_CANCELED) {
return;
}
if (CREATE_REQUESTCODE == requestCode) {
if (null != data) {
Uri uri = data.getData();
if (uri != null) {
String realPath = getRealPathFromURI(uri);
Log.e(TAG, "获取图片成功,path=" + realPath);
setImageView(realPath);
} else {
Log.e(TAG, "从相册获取图片失败");
}
}
} else if (SELECT_PIC_KITKAT == requestCode) {
if (null != data) {
setImageView(FragWeiXiuYuYue.getPath(getActivity(),
data.getData()));
}
}
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == -1) {
Log.e(TAG, "获取图片成功,path=" + picFileFullName);
setImageView(picFileFullName);
} else if (resultCode == 0) {
// 用户取消了图像捕获
} else {
// 图像捕获失败,提示用户
Log.e(TAG, "拍照失败");
}
}
}
相关文章
- 从0到9中随机选择,生成1到10个随机数,组成集合A, 同理生成集合B, 输出A和B以及其交集和并集.
- 自动上传本地图片和word图片(word图片需使用从word粘贴功能)
- php相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子
- input file禁用手机本地文件选择,只允许拍照上传图片 capture=“camera“
- H5(移动端)前端使用input type=file 上传图片,调用相机和相册
- 小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为
- 前端实现安卓和苹果手机的拍照上传图片和直接上传文件
- 微信js调用摄像头拍照上传_微信端调取相册和摄像头,实现图片上传,并上传到本地服务器...
- ios 打开图片库和相机选择图片界面修改为简体中文
- 在微信移动端input file拍照或从相册选择照片后会自动刷新页面退回到一开始网站进入的页面