Android从Camera中获取图片的两种方法
方法一:
此方法会由Camera直接产生照片回传给应用程序,但是返回的是压缩图片,显示不清晰
1
2
3
4
5
6
|
try
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_WITH_DATA); } catch (ActivityNotFoundException e) { e.printStackTrace(); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Bundle bundle = data.getExtras(); bmp_selectedPhoto = (Bitmap) bundle.get( "data" ); if
null ) bmp_selectedPhoto.recycle(); bmp_selectedPhoto = (Bitmap) data.getExtras().get( "data" ); // int scale = ImageThumbnail.reckonThumbnail(bitMap.getWidth(), // bitMap.getHeight(), 500, 600); // bitMap = ImageThumbnail.PicZoom(bitMap, // (int) (bitMap.getWidth() / scale), // (int) (bitMap.getHeight() / scale)); // bitMap = ThumbnailUtils.extractThumbnail(bitMap, 200, 200); if (bmp_selectedPhoto != null ){ home_view.setBackground( new BitmapDrawable(getResources(), bmp_selectedPhoto)); } |
方法二:
此方法所拍即所得,但是会在Sd卡上产生临时文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
Intent cameraIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE); File appDir = new File(Environment.getExternalStorageDirectory() + "/KengDieA" ); if (!appDir.exists()) { appDir.mkdir(); } mUri = Uri.fromFile( new File(Environment.getExternalStorageDirectory() + "/KengDieA/" , "kengDiePic" + String.valueOf(System.currentTimeMillis()) + ".jpg" )); cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mUri); try { cameraIntent.putExtra( "return-data" , true ); startActivityForResult(cameraIntent, CAMERA_WITH_DATA); } catch (Exception e) { e.printStackTrace(); } |
1
2
3
4
5
6
7
8
9
10
11
12
|
ContentResolver cr = this .getContentResolver(); try { if (bmp_selectedPhoto != null ) // 如果不释放的话,不断取图片,将会内存不够 bmp_selectedPhoto.recycle(); bmp_selectedPhoto = BitmapFactory.decodeStream(cr .openInputStream(mUri)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } home_view.setBackground( new BitmapDrawable(getResources(), bmp_selectedPhoto)); |
Android从Camera中获取图片的两种方法的更多相关文章
- php获取数组中重复数据的两种方法
分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...
- python中执行shell的两种方法总结
这篇文章主要介绍了python中执行shell的两种方法,有两种方法可以在Python中执行SHELL程序,方法一是使用Python的commands包,方法二则是使用subprocess包,这两个包 ...
- vue中使用echarts的两种方法
在vue中使用echarts有两种方法一.第一种方法1.通过npm获取echarts npm install echarts --save 2.在vue项目中引入echarts 在 main.js 中 ...
- PHP中获取星期的几种方法
PHP中获取星期的几种方法 PHP星期几获取代码: 1 date(l); 2 //data就可以获取英文的星期比如Sunday 3 date(w); 4 //这个可以获取数字星期比如123,注意0 ...
- [转]Qt中定时器使用的两种方法
Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 其精确度一般依赖于操作系统和硬件,但一般支持20ms.下面将分别介绍两种方法来使用定时器. 方法 ...
- AE 将地图导出为图片的两种方法
在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或Layout中的图象转出有两种方法,一种为通过IActiveView的OutPut函数,另外一种是通过IExpor ...
- UIImage加载图片的两种方法区别
Apple官方的文档为生成一个UIImage对象提供了两种方法加载图片: 1. imageNamed,其参数为图片的名字: 2. imageWithContentsOfFile,其参数也是图片文件的路 ...
- Ajax中解析Json的两种方法详解
eval(); //此方法不推荐 JSON.parse(); //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name&qu ...
- input上传图片(file),预览图片的两种方法。blob与base64编码
上传图片时一般都需要预览,我一般用这两种方法来实现.base64编码可以直接上传到后台,后台解析下,得到的文件就会比较小了,省去了压缩图片这一步了. //获取对象input file 的图片地址,放进 ...
随机推荐
- python之MD5、base64\base32解密
# -*- coding:utf-8 -*- import hashlib import base64 # 求最大公约数gys # def gys(m, n): # c = 1 # while(c ! ...
- 【POJ3159】Candies(差分约束系统)
题意:有一些人, 给n个人派糖果,给出m组约束,每组约束包含A,B,c 三个数, 意思是A的糖果数比B少的个数不多于c,即B的糖果数 - A的糖果数<= c . 最后求n 比 1 最多多多少糖果 ...
- leetcode算法学习----逆波兰表达式求值(后缀表达式)
下面题目是LeetCode算法:逆波兰表达式求值(java实现) 逆波兰表达式即后缀表达式. 题目: 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式.同 ...
- Problem 2669
Romantic Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- linux 运行tensorflow文件缺少_bz2问题及解决
今天,终于把如何在linux服务器上运行tensorflow程序的问题解决: 1.首先要在服务器上python下安装tensorflow(要看好是在python2还是python3下安装,还要看好是C ...
- 新浪微博开放平台之OAuth2.0认证
1.先到开放平台创建一个移动应用.获得key和secret,接着到"应用信息"里面填写授权回调页的网址,该网址能够随意,可是必须是能訪问的. 2.通过新浪提供的api:https: ...
- Jquery Mac OS Desktop项目想启动
想用Jquery做个MAC OS Desktop应用框架,欢迎大家提建议.
- skynet 控制台管理使用技巧
skynet 自带了一个控制台服务.能够非常方便获取和调试 skynet 执行数据,并且能够热更新代码,所以.弄明确skynet控制台管理能够让你更好地使用skynet,甚至改进这个控制台服务.以满足 ...
- C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断
C#保留2位小数几种场景总结 场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.2 ...
- C++之:友元类
一.文章来由 上一篇写了友元函数,这一次写一个姊妹篇,继续深入探究一下友元类. 二.定义 友元类的全部成员函数都是还有一个类的友元函数.都能够訪问还有一个类中的隐藏信息(包含私有成员和保护成员). 当 ...