史上最强Android 开启照相或者是从本地相册选中一张图片以后先裁剪在保存并显示的讲解附源码

整个程序的布局很简单

只在一个垂直方向上的线性布局里面有俩个按钮(Button)和一个显示图片的控件(ImageView)
这里就不给出这部分的代码了

1.是打开系统的相册

Intent albumIntent = new Intent(Intent.ACTION_PICK, null);
albumIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(albumIntent, ALBUM_OK);
这里是通过启动一个系统的隐式意图打开的本地相册

2.是开启系统的拍照
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 下面这句指定调用相机拍照后的照片存储的路径
if (pre.exists()) {
    pre.delete();
}
try {
    pre.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(pre));
startActivityForResult(cameraIntent, CAMERA_OK);
通过开启一个隐式意图打开照相机

3.进行裁剪 这里的裁剪也是通过一个隐式意图调用系统的功能的
/**
 * 裁剪图片方法实现
 *
 * @param uri 图片来源
 */
public void clipPhoto(Uri uri) {
    Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setDataAndType(uri, "image/*");
    intent.putExtra("crop", "true");
    // aspectX aspectY 是宽高的比例,这里设置的是正方形(长宽比为1:1)
intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    // outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 300);
    intent.putExtra("outputY", 300);
    intent.putExtra("return-data", true);
    startActivityForResult(intent, CUT_OK);
}
4.显示、保存图片
/**
 * 保存裁剪之后的图片数据 将图片设置到imageview中
 *
 * @param picdata
*/
private void setPicToView(Intent picdata) {
    CLog.d(TAG, "将图片显示在控件上");
    Bundle extras = picdata.getExtras();
    if (extras != null) {
        bitmap = extras.getParcelable("data");
        // TODO 设置图片之前 应该将之前的图片删除,将最新的图片保存
readBitmap2File(bitmap);
        headPhoto.setImageBitmap(bitmap);
    }
}

下面附上整个程序的源代码(其中还包括一个队图片进行二次采样的工具类)
这里面有一个问题有待验证。
在保存图片的时候,当时我的做法是先判断SDCard卡是否可用,
不可用的情况直接保存到手机内存,在这个地方,有人和我提到过好像由于某些问题,是不能保存到这个地方的。
可用的情况下,直接就在SDCard卡中保存。


点击下载源代码







版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-01 18:20:55

史上最强Android 开启照相或者是从本地相册选中一张图片以后先裁剪在保存并显示的讲解附源码的相关文章

翻翻git之---史上最强的图片选择器 GalleryFinal(顺带附下麦麦,当当的近照)

转载请注明出处:王亟亟的大牛之路 技术内容在P2,P1是废话可以跳过 P1:(开胃菜) 最近手头上工作的事差不多告一段落了,可以把更多的精力花在学习上了,还是会继续翻git这部分的文章(搬运工),然后准备整整一些之前没接触过的知识点(具体学什么没想好,等会看看去) 先上一下家里宝贝的近照 P2:(正菜) 今天上的是一个自称是"史上最强的图片选择器" GalleryFinal 话不多说先看看效果 作者几乎实现了我们平时所需的"皂片"选择器的所有功能,还带有一定的编辑和

史上最强】网上所有的Axure元器件、UI、8.0安装包汉化包资源汇总

史上最强]网上所有的Axure元器件.UI.8.0安装包汉化包资源汇总        目前产品经理工具中应该最火的就是axure了,简直就是人人必备.确实,在实现一些复杂的交互上,axure很管用,但是也有缺点,就是元器件不够多,很多要自己画,不美观.今天,8kvv就给大家整理了现有axure的元器件.Axure8.0.axure汉化包.苹果iOSUI及安卓5.0安卓6.0UI.很全啦! 大家慢慢欣赏哦! 列举下为大家整理的网上所有的Axure的实用资源(下载地址在最后),包括: 1.Axure

【史上最强JavaSE笔记】之数组篇

各位程序猿,各位攻城狮,各位蜥蜴鸥以及各位棕鲸鲤们~~大家好,我是潘师傅,欢迎大家收看由我为你们带来的[史上最强JavaSE笔记]系列,其实也可以叫[嘻哈JavaSE笔记]的,第一次在博客园发帖,想想还真是有点小激动呢,各位求支持呀,哈哈,那么回归正题,我把自己之前学习积累的笔记拿出来跟大家分享一下,方便大家更好的理解和复习,希望能够对大家有所帮助哈,这次发的是JavaSE方面数组篇的,内容不一定全面哦,欢迎大家前来留言交流哈,不足的地方还望大家多多指出和指导哈~(由于首次发文章,布局可能比较乱

史上最强实名制来袭!究竟切中了谁的要害?

对常在互联网上蹦跶的你,现在只想说三个字:实名制!近日,bilibili(B站)发布公告称,"应国家相关政策规定要求,从7月5日开始,UP主(视频创作者或上传者)上传视频内容(包括新增.编辑.换源等)需通过实名验证,方可编辑视频稿件".而这,可以看做是史上最强实名制的一部分. 事实上,近段时间以来,实名制是一直是网上热议的争议性话题之一.是否需要实名制.是否对部分用户的隐私权构成威胁.是否影响言论自由及互联网开放的本质精神.实名制究竟有多大的威慑力--史上最强实名制的全面来袭,究竟切中

史上最强型人养成秘籍: 90 天肥仔变型男实录

史上最强型人养成秘籍: 90 天肥仔变型男实录[12P] 这是一篇最近很火的帖子.主人公B.K ,是一个从来没有看见过自己腹肌的三十三岁中年普通男人,就是因为青春易逝的危机感,让他下定决心给自己一个交代!于是用了九十天,他做到了!减脂和塑身计划从2014年3 月15日开始到6月25日结束,从一个非典型性胖子.微胖界翘楚.土圆肥代表,到八块腹肌霸气外露,仅仅90天. 前几天在机场,遇见一个三四个月没见的小姐妹,在她面前半天没认出我.这样的情况,近期已经第三次了.因为这个原因,我不得已又去拍了新的证

史上最强算法论战:请不要嘻哈,这是哈希[下]

史上最强算法论战:请不要嘻哈,这是哈希[下] 欢迎个人转发朋友圈,机构及媒体转载需在开篇声明,转自微信公号“知象科技” 论战主角之一龙博:知象科技CEO,欲了解龙博及知象科技,请点击文末“阅读原文”. 这是“美丽互联”微信群里的一次算法论战,感谢书记员硅谷寒(梁寒)精彩的说书般的整理. 书接上文 一夜过去了…孤独虎精神抖擞的回来了! [书记员注:上集说到独孤虎被龙博两次判零分,已经到了精神分裂的边缘.于是他决定回家休养生息,以图再战.果不其然,第二天,独孤虎首先跳出来,带来了他的第四种方案.我们

喜欢,就要说出来,别等错失后才觉醒!史上最强告白!

喜欢,就要说出来,别等错失后才觉醒!史上最强告白!! 2016-08-06 亚谷科技 下辈子也要找到你 孙露 - 孙情流露 人一生会错过很多东西, 回得了过去,回不了当初. 关于爱情 喜欢 就要大声的说出来, 别再去等一个人.或者等一个故事. <偶像版> <太阳的后裔>第一集里男主就喜欢上了女主. -- “和我一起看电影吧?快回答,没时间了,好还是不好?” -- “好!” -- “那就这样说定了!” 喜欢就别矫情   <剧情版> “不好意思,刚认识就喜欢你!” 无论结果

【插件】史上最强编辑器通用ctags插件OpenCTags使用指南v1.2--开发者必备

Changes Log: v1.2.0 2011-12-4 支持Java编写的可以设置用户配置的编辑工具 增加当前文件类查找Tags功能 增加设置当前目录参数 完善多种主流轻量级编辑器的配置 v1.1.0 2011-11-26 完善提示窗口的显示样式 编辑器配置使用Json格式配置文件,方便定制到自己喜欢的编辑器,主流编辑器一网打尽 v1.0.4 2011-11-21 支持提示窗口拖动,按住鼠标右键,即可拖拖拖[上一版本为鼠标左键] 增加回车键功能,按下可以会自动打开对应的文件并定位到对应的位置

豆瓣看到一个史上最强最犀利骂人帖

豆瓣看到一个史上最强最犀利骂人帖 http://beijing.edeng.cn/xinxi/179414813.htmlhttp://beijing.edeng.cn/xinxi/179414852.htmlhttp://beijing.edeng.cn/xinxi/179414847.htmlhttp://beijing.edeng.cn/xinxi/179414862.htmlhttp://beijing.edeng.cn/xinxi/179414872.htmlhttp://beijin