Android调用相机拍照获取原始照片

Android调用相机拍照,获取原始照片的解决方案如下:
注意要有读取文件的权限,需要添加如下的权限:
<uses-permission android:name="android.permission.CAMERA" />
按钮点击事件:

public void click(View view) {
           Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//相机捕捉图片的意图
           intent.putExtra(MediaStore.EXTRA_OUTPUT, imageFileUri);//指定系统相机拍照保存在imageFileUri所指的位置
           startActivityForResult(intent, CAPTURE_PIC);//启动系统相机,等待返回
       }  

       @Override
       protected void onActivityResult(int requestCode, int resultCode, Intent data) {
           if (resultCode == RESULT_OK && requestCode == CAPTURE_PIC) {
               Options options = new Options();
               options.inJustDecodeBounds = true;//设置解码只是为了获取图片的width和height值,而不是真正获取图片
               Bitmap bitmap = BitmapFactory.decodeFile(imageFilePath, options);//解码后可以options.outWidth和options.outHeight来获取图片的尺寸  

              int widthRatio = (int) Math.ceil(options.outWidth / width);//获取宽度的压缩比率
              int heightRatio = (int) Math.ceil(options.outHeight / height);//获取高度的压缩比率  

              if (widthRatio > 1 || heightRatio > 1) {//只要其中一个的比率大于1,说明需要压缩
                  if(widthRatio>=heightRatio){//取options.inSampleSize为宽高比率中的最大值
                      options.inSampleSize = widthRatio;
                  }else{
                      options.inSampleSize = heightRatio;
                  }
              }  

               options.inJustDecodeBounds = false;//设置为真正的解码图片
               bitmap = BitmapFactory.decodeFile(imageFilePath, options);//解码图片  

               imageView.setImageBitmap(bitmap);
           }
          super.onActivityResult(requestCode, resultCode, data);
       }  

   }
时间: 2024-10-11 16:43:34

Android调用相机拍照获取原始照片的相关文章

从相册获取图片及调用相机拍照获取图片,最后上传图片到服务器

调用相机拍照获取图片: 跳转到到拍照界面: Intent takeIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //下面这句指定调用相机拍照后的照片存储的路径 mSzImageFileName = Long.toString(System.currentTimeMillis()) + ".png"; takeIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new F

Android调用相机实现拍照并裁剪图片,调用手机中的相冊图片并裁剪图片

在 Android应用中,非常多时候我们须要实现上传图片,或者直接调用手机上的拍照功能拍照处理然后直接显示并上传功能,以下将讲述调用相机拍照处理图片然后显示和调用手机相冊中的图片处理然后显示的功能,要想实现上传功能.一般都是上传到数据库中,将imageView中的图片取出来然后存到数据库中就可以. 以下讲述实现的步骤: 1. 调用相冊中的图片裁剪然后显示. 1.1 使用Intent获取从相冊中选择的照片. 1.2 对获取的图片进行裁剪处理.裁剪处理也是使用Intent调用的Android自带的裁

调用android系统相机拍照并保存图片

android调用系统相机拍照并保存图片 调用系统相机: //在某个事件中添加如下代码即可,不是说单击事件都不会写啊startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE),1); 解释:其中参数MediaStore.ACTION_IMAGE_CAPTURE是调用系统相机用的,而后面的1则是请求的Activity的标志,用来处理返回结果的 可以理解为:给系统相机的Activity添加一个请求标志,在用onActivity

Android调用相册拍照控件实现系统控件缩放切割图片

android 下如果做处理图片的软件 可以调用系统的控件 实现缩放切割图片 非常好的效果 今天写了一个demo分享给大家 package cn.m15.test; import java.io.ByteArrayOutputStream;import java.io.File;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.net.Ur

android中调用相机拍照返回null的问题的终极解决办法

private ArrayList<String> mImageList; private static final int REQUEST_CAMERA = 5; // 相机拍照标记 private static final int CAMERA_REQUEST_CODE = 1; /** * 拍照获取照片 */ protected void selectPicFromCamera() { if (!SDCardUtils.isSDCardEnable()){ //不存在sd卡 Toast.

调用android系统相机拍照并保存

[java] view plaincopyprint? <span style="font-size:18px;">package com.demo; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import

android: 调用摄像头拍照

很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的.下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄像头进行拍照. 新建一个 ChoosePicTest 项目,然后修改 activity_main.xml 中的代码,如下所示: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andro

调用相机拍照和图册中的图片并且对图片进行裁剪

在写Android应用的时候,很多时候需要调用自带的相机拍照或者直接从图库中选取图片并且对图片进行裁剪. 下面就讲述如何实现. 1. 调用相机 (1) 使用Intent调用相机,但是在启动Intent之前要设置一个文件路径,用来存储相机照下来的照片. (2)然后使用startActivityForResult启动Intent. (3)然后在protected void onActivityResult(int requestCode, int resultCode, Intent data)函数

Android调用相机拍摄照片并显示到 ImageView控件中

在前面的一篇文章中曾介绍过简单的开启相机照相功能,详见?Android简单调用相机Camera功能,实现打开照相功能?,这一次就会将前面拍摄的照片显示到ImageView中,形成一个完整的效果 看实例 MainActivity.java package com.example.camera; import java.io.File; import android.app.Activity; import android.content.Intent; import android.graphic