方法一:

此方法会由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
(bmp_selectedPhoto !=
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中获取图片的两种方法的更多相关文章

  1. php获取数组中重复数据的两种方法

    分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...

  2. python中执行shell的两种方法总结

    这篇文章主要介绍了python中执行shell的两种方法,有两种方法可以在Python中执行SHELL程序,方法一是使用Python的commands包,方法二则是使用subprocess包,这两个包 ...

  3. vue中使用echarts的两种方法

    在vue中使用echarts有两种方法一.第一种方法1.通过npm获取echarts npm install echarts --save 2.在vue项目中引入echarts 在 main.js 中 ...

  4. PHP中获取星期的几种方法

    PHP中获取星期的几种方法   PHP星期几获取代码: 1 date(l); 2 //data就可以获取英文的星期比如Sunday 3 date(w); 4 //这个可以获取数字星期比如123,注意0 ...

  5. [转]Qt中定时器使用的两种方法

    Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 其精确度一般依赖于操作系统和硬件,但一般支持20ms.下面将分别介绍两种方法来使用定时器. 方法 ...

  6. AE 将地图导出为图片的两种方法

    在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或Layout中的图象转出有两种方法,一种为通过IActiveView的OutPut函数,另外一种是通过IExpor ...

  7. UIImage加载图片的两种方法区别

    Apple官方的文档为生成一个UIImage对象提供了两种方法加载图片: 1. imageNamed,其参数为图片的名字: 2. imageWithContentsOfFile,其参数也是图片文件的路 ...

  8. Ajax中解析Json的两种方法详解

    eval();  //此方法不推荐 JSON.parse();  //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name&qu ...

  9. input上传图片(file),预览图片的两种方法。blob与base64编码

    上传图片时一般都需要预览,我一般用这两种方法来实现.base64编码可以直接上传到后台,后台解析下,得到的文件就会比较小了,省去了压缩图片这一步了. //获取对象input file 的图片地址,放进 ...

随机推荐

  1. 数位dp备忘录

    hdu 4734:把限制值化为数组形式,逐位求解 hdu 4507:类似于上题,其中求平方和的方法很妙 SPOJ  BALNUM Balanced Numbers:经典数位dp,注意两点,1,不要把前 ...

  2. unigui导出TMS.Flexcel【5】

    参考代码 procedure TUniFrmeWebEmbedBase.ExportData; //导出到excel var FlexCelImport1: TExcelFile; i, rowind ...

  3. Ural 1114 Boxes

    Boxes Time Limit: 600ms Memory Limit: 16384KB This problem will be judged on Ural. Original ID: 1114 ...

  4. [luoguP1156] 垃圾陷阱(DP)

    传送门 先按照时间排序 f[i][j] 表示 前i个物品高度为j时所剩余的最大能量 显然每个物品有堆和吃两种选择 状态转移看代码 代码 #include <cstdio> #include ...

  5. [K/3Cloud] 如何在k3Cloud主页实现自定义页面的开发

    过自定义页签动态添加一些内容,比如网页链接.图片等. 如果是动态的增加链接,可以参考一下代码,然后在ButtonClick事件里面对链接进行处理. public override void After ...

  6. Mysql 使用delete drop truncate 删除数据时受外键约束影响解决方案

    先禁用数据库的外键约束: set foreign_key_checks=0; 进行删除操作 delete.drop.truncate 恢复数据库外键约束: set foreign_key_checks ...

  7. Spring Boot配置文件规则以及使用方法官方文档查找以及Spring项目的官方文档查找方法

    比如要使用Spring Boot实现一个功能,最直接的方式是Google,但是往往搜索出来的都比较乱,关键是乱在不同的版本上,比如1.x版本和2.x版本的配置是不一样的.最明显区别是在使用Thymel ...

  8. Python3基础(六) 深入list列表

    正如Python FAQ1附录中说的, Python中任何值都是一个对象,所以任何类型(int.str.list-)都是一个类.而类就必然有它的方法或属性,我们要记下这么多类的所有方法显然是不可能的, ...

  9. configure: error: mysql configure failed. Please check config.log for more information.

    为php添加mysql模块时报错 configure: error: mysql configure failed. Please check config.log for more informat ...

  10. Filters.h各种信号恢复滤波器头文件

    这篇文章有部分原理:http://blog.csdn.net/u013467442/article/details/41125473 代码下载地址:http://read.pudn.com/downl ...