本文将向大家展示如何拍照截图。

先看看效果图:

拍照截图有点儿特殊,要知道,现在的Android智能手机的摄像头都是几百万的像素,拍出来的图片都是非常大的。因此,我们不能像对待相册截图一样使用Bitmap小图,无论大图小图都统一使用Uri进行操作。

一、首先准备好需要使用到的Uri:

private

static

final

String IMAGE_FILE_LOCATION = "file:///sdcard/temp.jpg";//temp

file

Uri

imageUri = Uri.parse(IMAGE_FILE_LOCATION);//The

Uri to store the big bitmap

二、使用MediaStore.ACTION_IMAGE_CAPTURE可以轻松调用Camera程序进行拍照:

Intent

intent = new

Intent(MediaStore.ACTION_IMAGE_CAPTURE);//action

is capture

intent.putExtra(MediaStore.EXTRA_OUTPUT,

imageUri);

startActivityForResult(intent,

TAKE_BIG_PICTURE);//or

TAKE_SMALL_PICTURE

三、接下来就可以在 onActivityResult中拿到返回的数据(Uri),并将Uri传递给截图的程序。

switch

(requestCode) {

case

TAKE_BIG_PICTURE:

Log.d(TAG,

"TAKE_BIG_PICTURE:

data = "

+ data);//it

seems to be null

//TODO

sent to crop

cropImageUri(imageUri,

800,

400,

CROP_BIG_PICTURE);

break;

case

TAKE_SMALL_PICTURE:

Log.i(TAG,

"TAKE_SMALL_PICTURE:

data = "

+ data);

//TODO

sent to crop

cropImageUri(imageUri,

300,

150,

CROP_SMALL_PICTURE);

break;

default:

break;

}

可以看到,无论是拍大图片还是小图片,都是使用的Uri,只是尺寸不同而已。我们将这个操作封装在一个方法里面

private

void

cropImageUri(Uri uri, int

outputX, int

outputY, int

requestCode){

Intent

intent = new

Intent("com.android.camera.action.CROP");

intent.setDataAndType(uri,

"image/*");

intent.putExtra("crop",

"true");

intent.putExtra("aspectX",

2);

intent.putExtra("aspectY",

1);

intent.putExtra("outputX",

outputX);

intent.putExtra("outputY",

outputY);

intent.putExtra("scale",

true);

intent.putExtra(MediaStore.EXTRA_OUTPUT,

uri);

intent.putExtra("return-data",

false);

intent.putExtra("outputFormat",

Bitmap.CompressFormat.JPEG.toString());

intent.putExtra("noFaceDetection",

true);

//

no face detection

startActivityForResult(intent,

requestCode);

}

四、最后一步,我们已经将数据传入裁剪图片程序,接下来要做的就是处理返回的数据了:

switch

(requestCode) {

case

CROP_BIG_PICTURE://from

crop_big_picture

Log.d(TAG,

"CROP_BIG_PICTURE:

data = "

+ data);//it

seems to be null

if(imageUri

!= null){

Bitmap

bitmap = decodeUriAsBitmap(imageUri);

imageView.setImageBitmap(bitmap);

}

break;

case

CROP_SMALL_PICTURE:

if(imageUri

!= null){

Bitmap

bitmap = decodeUriAsBitmap(imageUri);

imageView.setImageBitmap(bitmap);

}else{

Log.e(TAG,

"CROP_SMALL_PICTURE:

data = "

+ data);

}

break;

default:

break;

}

以上就是Android实现拍照截图功能的方法,希望对大家的学习有所帮助。

android实现截图功能吗,Android实现拍照截图功能相关推荐

  1. android拍照截图组件,Android_Android实现从相册截图的功能,在这篇文章中,我将向大家展 - phpStudy...

    Android实现从相册截图的功能 在这篇文章中,我将向大家展示如何从相册截图. 先看看效果图: 上一篇文章中,我就拍照截图这一需求进行了详细的分析,试图让大家了解Android本身的限制,以及我们应 ...

  2. android 打开相机拍照功能吗,Android调用相机实现拍照功能

    引言 在Android开发中相信大家都会遇到修改用户头像的问题,用户信息常常包含用户头像,一般流程为:默认头像-->用户修改(拍照/相册选择)-->保存头像图片. 本期我们就来实现调用系统 ...

  3. android中拍照功能介绍,Android实现拍照功能

    大家好,这是一个简单的拍照功能,很简单的界面,一个显示图像区域SurfaceView一个"拍照"按钮.直接上代码! 1.CameraDemoActivity.java(主界面) p ...

  4. Android学习之调用系统相机实现拍照功能

    一.今天,来介绍如何调用系统自带的相机进行拍照,主要有以下2种实现的方式: 1.Camera应用程序包含了一个意图过滤器,即intent filter,它使得开发人员能够提供与Camera应用程序同等 ...

  5. android 三星调用拍照功能吗,Android 相机开发 三星拍照崩溃修改解决 详细

    android 相机调用问题 三星系统4.0以上, 调用系统相机屏幕会强制切换为横屏 拍照完会切换为竖屏 点击保存回Activity 程序会直接崩溃 : 我理解的是 android系统在手机切换横竖屏 ...

  6. Android开发笔记(一百三十)截图和录屏

    屏幕捕捉 Android5.0之后开放了屏幕捕捉的API,因此开发者便可以直接通过代码进行截图与录屏,而无需操作系统底层了.屏幕捕捉的功能由MediaProjectionManager媒体投影管理器实 ...

  7. tensorflow移植到Android端,实现物体检测自动拍照

    tensorflow移植到Android端实现物体检测 一. 说明 1. tensorflow是什么: 是谷歌基于DistBelief进行研发的第二代人工智能学习系统. 2. 为什么要使用tensor ...

  8. Android移动开发之【Android实战项目】DAY11-App实现截图分享qq,微信

    前言 现在很多应用都有截图分享的功能,今天就来讲讲截图分享吧 今天涉及到以下内容: Android截屏 Android分享 效果图展示 ok,下面就来具体讲讲 一.权限,注意权限 先在自己的mainf ...

  9. 【Android】3.12 兴趣点( POI)搜索功能

    分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.简介 POI(Point of Interest),中文可以翻译为"兴趣点".在地理信 ...

最新文章

  1. Windows7 设置 Java环境变量
  2. 怎么把视频里的音乐提取出来
  3. 从Windows到鸿蒙——操作系统的前世今生
  4. 一个 TypeScript keyof 泛型用法
  5. [转载] python中的eval函数
  6. 流水线、精益生产、丰田生产方式和TOC的基本原则
  7. 银行卡号与开户行对照文档
  8. arcgis创建城市路网
  9. 解决安装office2007的各种工具时提示“安装程序找不到office.zh-cn/*”的问题
  10. c语言顺序结构编程题及其答案,C语言编程 顺序结构编程练习题目
  11. 【不积跬步_无以至千里】 数学知识(不定时整理)
  12. android手机和包支付,中国移动和包支付客户端下载-和包支付appv9.7.16 安卓版-腾牛安卓网...
  13. Modbus从站读写数据
  14. 【IoT】战略规划管理:BLM模型连载三之进化篇
  15. activiti学习之排他网关
  16. 【无线科普】802.11n 中HT20 HT40的区别和信道划分及plus,minus含义
  17. 有所精,有所知,有所思
  18. “穷人思维”和“富人思维”有什么区别?
  19. 112.Android 简单的群发微信,群发文本和图片,一键群发
  20. python-docx结合lxml读取word文档段落格式、字体格式等信息

热门文章

  1. oneproxy mysql_在OneProxy的基础上实行MySQL读写分离与负载均衡
  2. linux getline参数,[置顶]linux getline()函数
  3. list 增 删 改 查 及 公共方法
  4. div图片垂直居中 如何使div中图片垂直居中
  5. Yii2在部署新机器时需要注意的环境问题
  6. Navicat for mysql 远程连接 mySql数据库10061错误问题
  7. Android getResources的作用和需要注意点
  8. SQL SERVER 只有MDF文件的恢复
  9. 关于预编绎网站的问题[已预编译此应用程序的错误]
  10. linux文件比较,合并,查找重复行