关于拍照截取和相册截取,看了网上很多资料,自己整理了一份比较详细的,供有需要的人参考

1 拍照
原理就是通过intent调用系统的相机,拍完照在回调进行操作,成功获取到拍完照的图片根据uri调用系统的裁剪页面,裁剪完也是在回调中进行处理,显示在页面的imageview中。
2 相册选取图片
原理也是通过intent打开系统的图片,用户选择完成以后在回调中根据图片的uri调用系统的裁剪页面,同上。
首先,定义几个常量
public static final int TAKE_PHOTO = 1; public static final int CROP_PHOTO = 2; public static final int ACTION_CHOOSE=3; private Uri imageUri; //图片路径 private String filename; //图片名称
然后在拍照和相册选择的按钮中处理事件
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt1: //拍照截取
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date(System.currentTimeMillis());
filename = format.format(date);
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
File outputImage = new File(path, filename +".jpg");
try {
if (outputImage.exists()) {
outputImage.delete();
}
outputImage.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
//将File对象转换为Uri并启动照相程序
imageUri = Uri.fromFile(outputImage);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //照相
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); //指定图片输出地址
startActivityForResult(intent, TAKE_PHOTO); //启动照相
break;
case R.id.bt2: //相册选取
Intent intent2 = new Intent(Intent.ACTION_PICK);
intent2.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
startActivityForResult(intent2,ACTION_CHOOSE);
break;
}
}
最主要的在回调中的执行
// 使用startActivityForResult返回结果时调用的方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode!=RESULT_OK){
Toast.makeText(this, "取消了", Toast.LENGTH_SHORT).show();
return;
}
switch (requestCode) {
case TAKE_PHOTO: //拍照的回调
cropImage();
break;
case ACTION_CHOOSE: //选择照片的回调
imageUri = data.getData();
cropImage();
break;
case CROP_PHOTO: //裁剪完照片的回调
showPic();
break;
default:
break;
}
}
裁剪图片的方法
/**
* 裁剪图片
**/
private void cropImage() {
Intent intent = new Intent("com.android.camera.action.CROP"); //剪裁
intent.setDataAndType(imageUri, "image/*");
intent.putExtra("scale", true);
//设置宽高比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
//设置裁剪图片宽高
intent.putExtra("outputX", 340);
intent.putExtra("outputY", 340);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
Toast.makeText(MainActivity.this, "剪裁图片", Toast.LENGTH_SHORT).show();
//广播刷新相册
Intent intentBc = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intentBc.setData(imageUri);
this.sendBroadcast(intentBc);
startActivityForResult(intent, CROP_PHOTO); //设置裁剪参数显示图片至ImageView
}
过程比较简单,可能会有一些判断的地方没有处理,如果有不对的地方希望有高手可以帮忙改进,谢谢~~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android裁剪图片
# Android拍照截取
# Android相册获取图片截取
# Android实现选择相册图片并显示功能
# android获取相册图片和路径的实现方法
# android加载系统相册图片并显示详解
# 回调
# 拍完
# 的人
# 几个
# 是在
# 看了
# 最主要
# 转换为
# 大家多多
# 取消了
# 网上
# switch
# View
# getId
# case
# id
# filename
# String
# imageUri
# onClick
相关文章:
无锡营销型网站制作公司,无锡网选车牌流程?
如何选择最佳自助建站系统?快速指南解析优劣
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
建站之星×万网:智能建站系统+自助建站平台一键生成
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
建站三合一如何选?哪家性价比更高?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
如何快速重置建站主机并恢复默认配置?
,石家庄四十八中学官网?
常州企业网站制作公司,全国继续教育网怎么登录?
简单实现Android验证码
建站主机服务器选型指南与性能优化方案解析
建站之星在线客服如何快速接入解答?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何选择CMS系统实现快速建站与SEO优化?
建站主机解析:虚拟主机配置与服务器选择指南
PHP正则匹配日期和时间(时间戳转换)的实例代码
定制建站是什么?如何实现个性化需求?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
创业网站制作流程,创业网站可靠吗?
如何在阿里云购买域名并搭建网站?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
网站制作难吗安全吗,做一个网站需要多久时间?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
广州商城建站系统开发成本与周期如何控制?
建站之星微信建站一键生成小程序+多端营销系统
nginx修改上传文件大小限制的方法
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何用AWS免费套餐快速搭建高效网站?
Android滚轮选择时间控件使用详解
如何高效完成独享虚拟主机建站?
建站之星如何一键生成手机站?
建站之星代理平台如何选择最佳方案?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
c# 在高并发场景下,委托和接口调用的性能对比
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
建站中国官网:模板定制+SEO优化+建站流程一站式指南
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
建站主机默认首页配置指南:核心功能与访问路径优化
如何在IIS中配置站点IP、端口及主机头?
建站之星图片链接生成指南:自助建站与智能设计教程
如何在香港服务器上快速搭建免备案网站?
长沙企业网站制作哪家好,长沙水业集团官方网站?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
如何通过商城自助建站源码实现零基础高效建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。