Android实现拍照截取和相册图片截取

  • 时间:
  • 浏览:30
  • 来源:网络编程网

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

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 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手机的时候,然后去打开系统图库找不到我们想要的那张图片,那是因为我们插入的图片还没有更新的缘故,先讲解下插入系统图库的方法吧,很简单,

2018-04-06

Android拍照或从图库选择图片并裁剪

今天看《第一行代码》上面关于拍照和从相册选取图片那一部分,发现始终出不来效果,所以搜索其他资料学习一下相关知识,写一个简单的Demo。 一、拍照选择图片1、使用隐式Intent

2018-04-06

Android拍照和获取相册图片

之前遇到各种拍照啊,获取相册图片之类,都是直接去度娘,要么之前的代码复制下,没好好总结过。 再也不要问度娘了,再也不用一堆博客里找啊找了。。。 ----------------

2018-04-06

Camera360:借鉴唱吧心理战术,让小白爱上摄影

Camera360三位联合创始人(从左至右):CMO顾锐,CEO徐灏与CTO徐滢一款全球知名的摄影应用,将如何构建它的全球化产品新战略?2010年5月诞生的Camera360经

2018-03-23

西安蒙娜丽莎婚纱摄影钟楼店8月升级皇室摄影会馆

7月28日消息,西安蒙娜丽莎婚纱摄影钟楼店,将于8月升级成为皇室摄影会馆。西安蒙娜丽莎婚纱摄影钟楼店是西安摄影行业旗舰品牌老店,营业已近十年。蒙娜丽莎婚纱摄影钟楼店负责人表示,

2018-03-19