1.调用系统的照相机程序
Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
 startActivityForResult(intent,TAKE_PHOTO_WITH_DATA);

2.在onActivityResult中处理返回的data
final Bitmap photo = data.getParcelableExtra("data");
如果不需要做剪切处理就可以直接使用图片了,比如输出到ImageView上
imageView.setImageBitmap(photo);
如果需要做剪切处理,就继续向下执行

3.做剪切处理
       Intent intent = newIntent("com.android.camera.action.CROP");
       intent.setType("image
   private Button btnTake = null;
   private ImageView lblImage = null;
   
   private static final int PHOTO_PICKED_WITH_DATA = 3021;
   private static final int CAMERA_WITH_DATA = 3023;
   
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       
       btnTake = (Button)findViewById(R.id.btnTake);
       lblImage = (ImageView)findViewById(R.id.lblImage);
       btnTake.setOnClickListener(new View.OnClickListener() {
           
           @Override
           public void onClick(View v) {
               // TODO Auto-generated method stub
               Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
               startActivityForResult(intent, CAMERA_WITH_DATA);
           }
       });
       
   }
   
   @Override
   protected void onActivityResult(int requestCode, int resultCode,Intent data) {
       // TODO Auto-generated method stub
       if(resultCode!=RESULT_OK)
           return;
       switch(requestCode){
       case CAMERA_WITH_DATA:
           final Bitmap photo = data.getParcelableExtra("data");
           if(photo!=null){
               doCropPhoto(photo);
           }
       case PHOTO_PICKED_WITH_DATA:
           Bitmap photo1 = data.getParcelableExtra("data");
           if(photo1!=null){
               lblImage.setImageBitmap(photo1);
           }
           
       }
   }
   
   protected void doCropPhoto(Bitmap data){
       Intent intent = getCropImageIntent(data);
       startActivityForResult(intent, PHOTO_PICKED_WITH_DATA);
   }
   
   public static Intent getCropImageIntent(Bitmap data) {
       Intent intent = newIntent("com.android.camera.action.CROP");
       intent.setType("image/*");
       intent.putExtra("data", data);
       intent.putExtra("crop", "true");
       intent.putExtra("aspectX", 1);
       intent.putExtra("aspectY", 1);
       intent.putExtra("outputX", 128);
       intent.putExtra("outputY", 128);
       intent.putExtra("return-data", true);
       return intent;
   }
}

完整代码:

package com.chc.android;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class tapgetcut extends Activity {
private Button btnTake = null;
private ImageView lblImage = null;

private static final int PHOTO_PICKED_WITH_DATA = 3021;
private static final int CAMERA_WITH_DATA = 3023;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
   
    btnTake = (Button)findViewById(R.id.btn01);
    lblImage = (ImageView)findViewById(R.id.iv01);
    btnTake.setOnClickListener(new View.OnClickListener() {
       
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, CAMERA_WITH_DATA);
        }
    });
   
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    if(resultCode!=RESULT_OK)
        return;
    switch(requestCode){
    case CAMERA_WITH_DATA:
        final Bitmap photo = data.getParcelableExtra("data");
        if(photo!=null){
            doCropPhoto(photo);
        }
    case PHOTO_PICKED_WITH_DATA:
        Bitmap photo1 = data.getParcelableExtra("data");
        if(photo1!=null){
            lblImage.setImageBitmap(photo1);
        }
       
    }
}

protected void doCropPhoto(Bitmap data){
    Intent intent = getCropImageIntent(data);
    startActivityForResult(intent, PHOTO_PICKED_WITH_DATA);
}

public static Intent getCropImageIntent(Bitmap data) {
    Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setType("image/*");
    intent.putExtra("data", data);
    intent.putExtra("crop", "true");
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    intent.putExtra("outputX", 128);
    intent.putExtra("outputY", 128);
    intent.putExtra("return-data", true);
    return intent;
}
}

xml:

android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

android:id ="@+id/test01"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
    android:id="@+id/btn01"
      android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="确定"
    />

android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

自 http://blog.sina.com.cn/s/blog_7501670601013l3o.html

android调用照相机拍照获取照片并…相关推荐

  1. android调用照相机拍照获取照片并做简单剪裁

    1.调用系统的照相机程序 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(int ...

  2. Android调用照相机拍照

    之前写在别的网站上写博客.后来没有坚持下来,以至于账号密码都忘了,好啦说正事 Android调用照相机拍照 这个在现在的应用中很常见,首先如果拍照是应用的必要功能,那么应该令它在Google Play ...

  3. pc 和手机调用摄像头拍照 获取照片 好用

    前端何如在代码中使用摄像头拍照功能 demo 部署服务器可以测试 <!DOCTYPE html> <html lang="en"><head>& ...

  4. Android调用相机拍照,照片被旋转的问题

    问题描述:最近在做毕设,想在我的天气APP中加入一个添加图片水印的小功能,首先就是学习了郭霖老师的调用相机并显示的功能.起先是在华为的手机上调试(是一个我刚换下来的手机mate7)图片没有问题,可以正 ...

  5. Android调用相机拍照高清原图(兼容7.0)

    在安卓更新7.0的版本后,要调用相机拍照获取原图则需要先把拍摄后的内容保存到目录,然后再借助provider调出来显示,相比以前可以说十分繁琐,但为了摆脱马赛克画质的困扰,为了更好的用户体验,还是硬着 ...

  6. Android调用照相机展示高清图片及展示图片时图片倾斜问题

    Android调用照相机展示高清图片及展示图片时图片倾斜问题 一.概述 二.配置权限 三.封装CameraUtil工具类 1.Android调用照相机 2.调用系统相册 3.拍摄完毕或在相册选取好照片 ...

  7. android相机拍照代码,Android 调用相机拍照,适配到Android 10

    今天写的博客是关于Android调用手机相机拍照并显示图片.这是一个很常用的功能,并且这个功能在Android6.0.7.0.10.0等版本上实现都有所不同,需要对Android各个版本进行兼容适配, ...

  8. MVP模式的Android 调用系统拍照,相册,剪裁,适配到7.0,修复拍照图片旋转问题

    Android 调用系统拍照,相册,剪裁,适配到7.0,修复拍照图片旋转问题 直接上代码 首先添加拍照需要的权限 <uses-permission android:name="andr ...

  9. android 7调用摄像头,Android调用摄像头拍照(兼容7.0)

    [实例简介] Android调用摄像头拍照(兼容7.0)Demo,原博客文章https://blog.csdn.net/u010356768/article/details/70808162 [实例截 ...

最新文章

  1. 一禁了之还是放开应用?面部识别“人红是非多”
  2. 【SPOJ-QTREE】树链剖分
  3. Wannafly summer camp
  4. CMake PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR区别
  5. 筋斗云newcloud错误码列表
  6. python怎么让画笔向下移动_Pandas 解决dataframe的一列进行向下顺移问题
  7. 灵魂拷问:到底要不要写单元测试,如何正确进行单元测试?
  8. ModelForm views.py
  9. Android TelephonyManager类
  10. 利用XML实现通用WEB报表打印(参考)
  11. java从入门到精通6
  12. ubuntu下vscode字体间距 空格间距太小 增大间距
  13. 前端html与css学习笔记总结篇(超详细)
  14. eclipse设置工作空间的默认编码和设置项目的编码
  15. 1072: 青蛙爬井 C语言
  16. MyBatis入门回顾
  17. 制作抖音超火的罗盘时钟(HTML+CSS+JS)
  18. Java-断点续传(分片上传)
  19. 这四款PC软件能够帮你在工作中轻松脱颖而出
  20. HttpServlet爆红

热门文章

  1. linux开机界面改为图画,CentOS6.5启动界面的更改的方法
  2. ubuntu10.04 NVIDA显卡驱动安装
  3. postgresql报错prepared statement ““S_84““ does not exist
  4. Python:蒙特卡洛算法以及三门问题
  5. 相关性系数和显著性水平
  6. python vs jython
  7. jlink_gdb_server
  8. 3周岁送福利结果出炉!
  9. 智能串口协议转换模块(四串口)SS-430
  10. matlab ode45 特姐,matlab 中ode45的源代码如何看懂