android实现截图功能吗,Android实现拍照截图功能
本文将向大家展示如何拍照截图。
先看看效果图:
拍照截图有点儿特殊,要知道,现在的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实现拍照截图功能相关推荐
- android拍照截图组件,Android_Android实现从相册截图的功能,在这篇文章中,我将向大家展 - phpStudy...
Android实现从相册截图的功能 在这篇文章中,我将向大家展示如何从相册截图. 先看看效果图: 上一篇文章中,我就拍照截图这一需求进行了详细的分析,试图让大家了解Android本身的限制,以及我们应 ...
- android 打开相机拍照功能吗,Android调用相机实现拍照功能
引言 在Android开发中相信大家都会遇到修改用户头像的问题,用户信息常常包含用户头像,一般流程为:默认头像-->用户修改(拍照/相册选择)-->保存头像图片. 本期我们就来实现调用系统 ...
- android中拍照功能介绍,Android实现拍照功能
大家好,这是一个简单的拍照功能,很简单的界面,一个显示图像区域SurfaceView一个"拍照"按钮.直接上代码! 1.CameraDemoActivity.java(主界面) p ...
- Android学习之调用系统相机实现拍照功能
一.今天,来介绍如何调用系统自带的相机进行拍照,主要有以下2种实现的方式: 1.Camera应用程序包含了一个意图过滤器,即intent filter,它使得开发人员能够提供与Camera应用程序同等 ...
- android 三星调用拍照功能吗,Android 相机开发 三星拍照崩溃修改解决 详细
android 相机调用问题 三星系统4.0以上, 调用系统相机屏幕会强制切换为横屏 拍照完会切换为竖屏 点击保存回Activity 程序会直接崩溃 : 我理解的是 android系统在手机切换横竖屏 ...
- Android开发笔记(一百三十)截图和录屏
屏幕捕捉 Android5.0之后开放了屏幕捕捉的API,因此开发者便可以直接通过代码进行截图与录屏,而无需操作系统底层了.屏幕捕捉的功能由MediaProjectionManager媒体投影管理器实 ...
- tensorflow移植到Android端,实现物体检测自动拍照
tensorflow移植到Android端实现物体检测 一. 说明 1. tensorflow是什么: 是谷歌基于DistBelief进行研发的第二代人工智能学习系统. 2. 为什么要使用tensor ...
- Android移动开发之【Android实战项目】DAY11-App实现截图分享qq,微信
前言 现在很多应用都有截图分享的功能,今天就来讲讲截图分享吧 今天涉及到以下内容: Android截屏 Android分享 效果图展示 ok,下面就来具体讲讲 一.权限,注意权限 先在自己的mainf ...
- 【Android】3.12 兴趣点( POI)搜索功能
分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.简介 POI(Point of Interest),中文可以翻译为"兴趣点".在地理信 ...
最新文章
- Windows7 设置 Java环境变量
- 怎么把视频里的音乐提取出来
- 从Windows到鸿蒙——操作系统的前世今生
- 一个 TypeScript keyof 泛型用法
- [转载] python中的eval函数
- 流水线、精益生产、丰田生产方式和TOC的基本原则
- 银行卡号与开户行对照文档
- arcgis创建城市路网
- 解决安装office2007的各种工具时提示“安装程序找不到office.zh-cn/*”的问题
- c语言顺序结构编程题及其答案,C语言编程 顺序结构编程练习题目
- 【不积跬步_无以至千里】 数学知识(不定时整理)
- android手机和包支付,中国移动和包支付客户端下载-和包支付appv9.7.16 安卓版-腾牛安卓网...
- Modbus从站读写数据
- 【IoT】战略规划管理:BLM模型连载三之进化篇
- activiti学习之排他网关
- 【无线科普】802.11n 中HT20 HT40的区别和信道划分及plus,minus含义
- 有所精,有所知,有所思
- “穷人思维”和“富人思维”有什么区别?
- 112.Android 简单的群发微信,群发文本和图片,一键群发
- python-docx结合lxml读取word文档段落格式、字体格式等信息
热门文章
- oneproxy mysql_在OneProxy的基础上实行MySQL读写分离与负载均衡
- linux getline参数,[置顶]linux getline()函数
- list 增 删 改 查 及 公共方法
- div图片垂直居中 如何使div中图片垂直居中
- Yii2在部署新机器时需要注意的环境问题
- Navicat for mysql 远程连接 mySql数据库10061错误问题
- Android getResources的作用和需要注意点
- SQL SERVER 只有MDF文件的恢复
- 关于预编绎网站的问题[已预编译此应用程序的错误]
- linux文件比较,合并,查找重复行