之前採用的方式(返回的照片会被压缩,不能达到预期效果):

Intent intent = new Intent();

Intent intent_camera = getPackageManager()

.getLaunchIntentForPackage("com.android.camera");

if (intent_camera != null) {

intent.setPackage("com.android.camera");

}

intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, 100);

回调:(在返回的data中区数据,然后保存,然后再拿到路径。这样图片是已经压缩了的)

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

Log.d("TAG", "requestCode" + requestCode + " ,resultCode" + resultCode

+ data);

if (requestCode == 100 && resultCode == Activity.RESULT_OK

&& null != data) {

// 照相返回界面

String sdState = Environment.getExternalStorageState();

if (!sdState.equals(Environment.MEDIA_MOUNTED)) {

Toast.makeText(getApplicationContext(), "未找到SDK",

Toast.LENGTH_LONG).show();

Log.d("TAG", "sd card unmount");

return;

}

new DateFormat();

String name = DateFormat.format("yyyyMMdd_hhmmss",

Calendar.getInstance(Locale.CHINA))

+ ".jpg";

Log.d("TAG", "name.........." + name);

Bundle bundle = data.getExtras();

// 获取相机返回的数据,并转换为图片格式

Bitmap bitmap;

String filename = null;

bitmap = (Bitmap) bundle.get("data");

FileOutputStream fout = null;

// 定义文件存储路径

File file = new File("/sdcard/e_community/");

if (!file.exists()) {

file.mkdirs();

}

filename = file.getPath() + "/" + name;

try {

fout = new FileOutputStream(filename);

// 对图片进行压缩

bitmap.compress(Bitmap.CompressFormat.PNG, 100, fout);

// FileOutputStream outputStream = new FileOutputStream(filename); // 文件输出流  

//        outputStream.write(data); // 写入sd卡中  

//        outputStream.close(); // 关闭输出流  

} catch (FileNotFoundException e) {

e.printStackTrace();

} finally {

try {

fout.flush();

fout.close();

} catch (IOException e) {

e.printStackTrace();

}

}

Log.d("TAG", "相片路径" + filename);

}

解决图片太小的问题。就是在启动相机的时候设置好照片保存的路径以及名称,这样data中就不会返回数据而是null,这样就能够依据自己设置的路径已经设置的名称通过BitmapFactory.decodeFile(imageUrl.get(j),option);获取到照片。

启动代码例如以下:

private String camera_path = Environment.getExternalStorageDirectory().toString()+"/e_community/";保存的路径

private String camera_photo_name;//保存的名称

Uri mOutPutFileUri;

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

File path1 = new File(PhotoUtil.camera_path);

 if(!path1.exists()){

  path1.mkdirs();

 }

 camera_photo_name=System.currentTimeMillis()+".png";

 File file = new File(path1,camera_photo_name);

 mOutPutFileUri = Uri.fromFile(file);

 intent.putExtra(MediaStore.EXTRA_OUTPUT, mOutPutFileUri);

startActivityForResult(intent, 111);

回调:

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

Log.d("TAG", "requestCode" + requestCode + " ,resultCode" + resultCode

+ data);

if (requestCode == 111&&resultCode==Activity.RESULT_OK) {

// 照相返回界面

String filename = PhotoUtil.camera_path+ "/" + camera_photo_name;

Log.d("TAG", "相片路径" + filename);

}

}

Intent调用系统拍照程序,返回图片太小的问题的更多相关文章

  1. 关于android中调用系统拍照,返回图片是旋转90度

    转载博客:http://blog.csdn.net/walker02/article/details/8211628 项目开发中遇到的一个问题,对于三星手机在做手机照片选择时出现图片显示不正常,研究后 ...

  2. UWP 调用系统拍照程序

    当需要用户选择照片时,一般有两种方法: 1.从本地磁盘选择 2.调用照相机拍照 这次就说一下第二种方法,毕竟第一种大家都会. 先看下效果 如图所示,点击拍照后,会弹出系统照相机界面,在手机上,会打开相 ...

  3. 摄像头(3)调用系统拍照activity来拍照

    import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager ...

  4. Android上传图片之调用系统拍照和从相冊选择图片

    Android上传图片之调用系统拍照和从相冊选择图片 本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布 前言: 万丈高楼平底起,万事起于微末.不知不觉距离上篇博文已近四个月,2015 ...

  5. Java乔晓松-android中调用系统拍照功能并显示拍照的图片

    android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ...

  6. Android 实例解说加入本地图片和调用系统拍照图片

    在项目的开发过程我们离不开图片.而有时候须要调用本地的图片,有时候须要调用拍照图片.同一时候实现拍照的方法有两种,一种是调用系统拍照功能.还有一种是自己定义拍照功能. 而本博文眼下仅仅解说第一种方法, ...

  7. Android调用系统拍照裁剪和选图功能

    最近项目中用到修改用户头像的功能,基本上都是模板代码,现在简单记录一下. 调用系统拍照 private fun openCamera() { //调用相机拍照 // 创建File对象,用于存储拍照后的 ...

  8. android intent调用系统camera

    利用android的camera通常有两种方式:利用intent调用系统的camera,或者结合surfaceview实现自己定制的camera.先分别对这两种方法说明如下: 一.使用系统自配的cam ...

  9. Android 调用系统分享文字、图片、文件,可直达微信、朋友圈、QQ、QQ空间、微博

    原文:Android 调用系统分享文字.图片.文件,可直达微信.朋友圈.QQ.QQ空间.微博 兼容SDK 18以上的系统,直接调用系统分享功能,分享文本.图片.文件到第三方APP,如:微信.QQ.微博 ...

随机推荐

  1. Symfony4中文文档: 安装和设置Symfony框架

    安装和设置Symfony框架 要创建新的Symfony应用程序, 首先确保使用的是PHP7.1 或更高版本并且已经安装Componser. 如果未安装, 请首先在系统上全局安装Componser. 如 ...

  2. iOS 全局修改UINavigation 后退按钮

    将导航栏的后退按钮中的文字去掉一直是老大难问题,现在可以使用运行时机制,将后退按钮文字清空 创建UINavigationItem的category,直接上代码 .h文件 #import <UIK ...

  3. 【Codeforces Round #423 (Div. 2) A】Restaurant Tables

    [Link]:http://codeforces.com/contest/828/problem/A [Description] 有n个组按照时间顺序来餐馆; 每个组由一个人或两个人组成; 每当有一个 ...

  4. 金融项目java开发_BigDecimal(解决计算精度问题)

    当使用double进行商业运算时,double计算会丢失精度.可以使用BigDecimal进行计算. import java.math.BigDecimal; import org.junit.Tes ...

  5. 网络project1101班2014-2015学年《网络软件开发实训》期末考试

    注意事项: *考试时间:2014年11月20日 第5.6节. *在计算机D盘,新建目录.并命名"学号+姓名".如:(称为考生目录.下同).考试中全部文件必须保存在此目录下. *启动 ...

  6. hdu1879 继续畅通project(最小生成树)

    继续畅通project Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  7. 19.浏览器Window服务($window)

    转自:https://www.cnblogs.com/best/tag/Angular/ 引用浏览器的window对象.默认浏览器的window是全局的根对象. 示例代码: <!DOCTYPE ...

  8. 18.angularJS服务

    转自:https://www.cnblogs.com/best/tag/Angular/ 服务 AngularJS功能最基本的组件之一是服务(Service).服务为你的应用提供基于任务的功能.服务可 ...

  9. Ubuntu16.04进入挂起或休眠状态时按任何键都无法唤醒问题解决办法

    挂起(待机)计算机将目前的运行状态等数据存放在内存,关闭硬盘.外设等设备,进入等待状态.此时内存仍然需要电力维持其数据,但整机耗电很少.恢复时计算机从内存读 出数据,回到挂起前的状态,恢复速度较快.一 ...

  10. IDEA集成Python插件,SDK配置

    (第一次写在博客园添加随笔, 会有些生硬,有不对的地方和描述错误之处希望可以指出) 最近在学习一个新的知识点,涉及到Python的使用,因为第一次接触很多地方都不是很明白 ,好,废话不多说,现在直接上 ...