android拍照截图组件,Android_Android实现从相册截图的功能,在这篇文章中,我将向大家展 - phpStudy...
Android实现从相册截图的功能
在这篇文章中,我将向大家展示如何从相册截图。
先看看效果图:
上一篇文章中,我就拍照截图这一需求进行了详细的分析,试图让大家了解Android本身的限制,以及我们应当采取的实现方案。大家可以回顾一下:Android实现拍照截图功能
根据我们的分析与总结,图片的来源有拍照和相册,而可采取的操作有
使用Bitmap并返回数据
使用Uri不返回数据
前面我们了解到,使用Bitmap有可能会导致图片过大,而不能返回实际大小的图片,我将采用大图Uri,小图Bitmap的数据存储方式。
我们将要使用到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
不难知道,我们从相册选取图片的Action为Intent.ACTION_GET_CONTENT。
根据我们上一篇博客的分析,我准备好了两个实例的Intent。
一、从相册截大图:
Intent
intent = new
Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra("crop",
"true");
intent.putExtra("aspectX",
2);
intent.putExtra("aspectY",
1);
intent.putExtra("outputX",
600);
intent.putExtra("outputY",
300);
intent.putExtra("scale",
true);
intent.putExtra("return-data",
false);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
imageUri);
intent.putExtra("outputFormat",
Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection",
true);
//
no face detection
startActivityForResult(intent,
CHOOSE_BIG_PICTURE);
二、从相册截小图
Intent
intent = new
Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra("crop",
"true");
intent.putExtra("aspectX",
2);
intent.putExtra("aspectY",
1);
intent.putExtra("outputX",
200);
intent.putExtra("outputY",
100);
intent.putExtra("scale",
true);
intent.putExtra("return-data",
true);
intent.putExtra("outputFormat",
Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection",
true);
//
no face detection
startActivityForResult(intent,
CHOOSE_SMALL_PICTURE);
三、对应的onActivityResult可以这样处理返回的数据
switch
(requestCode) {
case
CHOOSE_BIG_PICTURE:
Log.d(TAG,
"CHOOSE_BIG_PICTURE:
data = "
+ data);//it
seems to be null
if(imageUri
!= null){
Bitmap
bitmap = decodeUriAsBitmap(imageUri);//decode
bitmap
imageView.setImageBitmap(bitmap);
}
break;
case
CHOOSE_SMALL_PICTURE:
if(data
!= null){
Bitmap
bitmap = data.getParcelableExtra("data");
imageView.setImageBitmap(bitmap);
}else{
Log.e(TAG,
"CHOOSE_SMALL_PICTURE:
data = "
+ data);
}
break;
default:
break;
}
private
Bitmap decodeUriAsBitmap(Uri uri){
Bitmap
bitmap = null;
try
{
bitmap
= BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
}
catch
(FileNotFoundException e) {
e.printStackTrace();
return
null;
}
return
bitmap;
}
以上就是Android实现拍照截图功能的方法,希望对大家的学习有所帮助。相关阅读:
IE下Ajax缓存问题的快速解决方法(get方式)
C#私有构造函数使用示例
javascript函数特点实例分析
Swift教程之下标详解
javascript使用prototype完成单继承
win7系统开机出现黑屏提示Non-system disk or disk error的故障原因及解决方法
干货分享:让你分分钟学会javascript闭包
Java套接字(Socket)网络编程入门
jquery zTree异步加载简单实例讲解
js实现网页自动刷新可制作节日倒计时效果
win10右键管理打不开怎么办?win10右键管理打不开的解决方法
Android编程开发之EditText中inputType属性小结
简单谈谈javascript代码复用模式
MongoDB的Master-Slave主从模式配置及主从复制要点解析
android拍照截图组件,Android_Android实现从相册截图的功能,在这篇文章中,我将向大家展 - phpStudy...相关推荐
- android 选择年月日历,Android_java万年历,获取该年月日历表,这篇文章应用java技术输入年份 - phpStudy...
java万年历,获取该年月日历表 这篇文章应用java技术输入年份和月份获取该年月日历表,下面通过一段代码给大家做展示: 输入年份和月份,打印出这个月的日历表 1.1900年1月1日是星期一 2.计算 ...
- android one x3怎么样,618旗舰手机怎么选,看完这篇文章,你就会知道
转眼间,2021年即将过半,一年一度的年中购物狂欢节618就要到来了.我已经迫不及待了.毕竟在618年中大促的时候,各家厂商都有力度非常大的活动.而且也有很多小伙伴一直在观望,想要在618的时候给自己 ...
- linux图片切割,从相册截图 - Android大图片裁剪终极解决方案_Linux编程_Linux公社-Linux系统门户网站...
在这篇文章中,我将向大家展示如何从相册截图. 上一篇文章中,我就拍照截图这一需求进行了详细的分析,试图让大家了解Android本身的限制,以及我们应当采取的实现方案. 根据我们的分析与总结,图片的来源 ...
- Android拍照或从相册中取照片
此文章只为记录本人在开发中遇到的坑以及学到的知识,里面可能还是存在问题,如果有问题希望大家能指出来,谢谢! 1.拍照 拍照需要适配7.0和7.0以下的手机,然后还需要申请相机和SD卡的读写权限.这次没 ...
- Android自己定义组件系列【6】——进阶实践(3)
上一篇<Android自己定义组件系列[5]--进阶实践(2)>继续对任老师的<可下拉的PinnedHeaderExpandableListView的实现>进行了分析,这一篇计 ...
- Android深入四大组件(八)广播的注册、发送和接收过程
前言 我们接着来学习Android四大组件中的BroadcastReceiver,广播主要就是分为注册.接收和发送过程.建议阅读此文前请先阅读Android深入理解四大组件系列的文章,知识重复的部分, ...
- Android自己定义组件系列【4】——自己定义ViewGroup实现双側滑动
在上一篇文章<Android自己定义组件系列[3]--自己定义ViewGroup实现側滑>中实现了仿Facebook和人人网的側滑效果,这一篇我们将接着上一篇来实现双面滑动的效果. 1.布 ...
- Android应用程序组件Content Provider在应用程序之间共享数据的原理分析(1)
在Android系统中,不同的应用程序是不能直接读写对方的数据文件的,如果它们想共享数据的话,只能通过Content Provider组件来实现.那么,Content Provide ...
- Android深入四大组件(五)Android8.0 根Activity启动过程(后篇)
前言 在几个月前我写了Android深入四大组件(一)应用程序启动过程(前篇)和Android深入四大组件(一)应用程序启动过程(后篇)这两篇文章,它们都是基于Android 7.0,当我开始阅读An ...
最新文章
- 窗函数-减少傅里叶变换泄漏
- Ambari 架构(三)Ambari Server 架构
- hdu 6183 线段树的空间优化
- mysql建表测试_总结MySQL建表、查询优化实用小技巧
- Java PreparedStatement
- EasyUI DataGrid undefined处理
- 关于elasticsearch 基础篇(搜索文档)
- 联想计算机phoenix award bios,phoenix-Award BIOS
- 英语单词常见后缀词性
- smartdns 部署最佳实践
- EffectCreator for mac(抖音短视频编辑软件)
- 投票系统(投票问题可多选、带柱状图)
- 基于F28335指纹识别系统
- java过滤器的作用_javaweb过滤器的作用,过滤器filter的作用是什么?
- 手Q游戏中心上线 完美释放娱乐基因
- 基于李雅普诺夫函数的跟踪控制(二)
- 【中文】【吴恩达课后编程作业】Course 4 - 卷积神经网络 - 第二周作业
- 1.Python-准备工作:搭建环境与“Hello,world!”
- 从技术趋势看质量赋能
- mysql按照汉字拼音进行order by排序
热门文章
- Oracle IMPDP导入数据案例之注意事项(undo/temp)
- SqlMap自动化SQL注入测试工具简绍
- windows 上的应用性能测试
- sql join语句语法_SQL Left Join语句:示例语法
- react引入外部js_React.js:无需使用外部库即可实现拖放功能
- java this的用法
- 江阴市高中计算机会考知识点,最新!2019年江阴中考体育考试方案发布!速看.........
- 非常实用的Python库
- 这个教程价值有点高,利用Python制作全自动化营销软件!
- HTTP状态保持(cookie、session)