很多应用程序都可能会使用到调用摄像头拍照和从相册选取图片的功能,今天我们开始android中摄像头与相册调用的学习。

目录导航

  1. 调用摄像头拍照
  2. 从相册中选择照片
  3. 友情链接

调用摄像头拍照

大致流程:调用相机拍照,然后剪辑,之后再在imageView中显示。项目结构如下:

aaarticlea/png;base64,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" alt="" />

一、 一些初始化的代码:

public static final int TAKE_PHOTO = 1;
public static final int CROP_PHOTO = 2;
public static final int CHOOSE_PHOTO = 3;
private ImageView picture;
private Uri imageUri; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
picture = (ImageView) findViewById(R.id.picture);
}

二、 创建文件:

// 创建File对象,用于存储拍照后的图片
private File createImageFile(String fileName) {
File outputImage = new File(Environment.getExternalStorageDirectory(), fileName);
try {
if (outputImage.exists()) {
outputImage.delete();
}
outputImage.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
return outputImage;
}

三、 调用系统相机拍照,

// 调用系统相机拍照,并创建一张jpg文件
public void takePhone(View view) {
imageUri = Uri.fromFile(createImageFile("takephone.jpg"));
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, TAKE_PHOTO); // 启动相机程序
}

四、 onActivityResult方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case TAKE_PHOTO:
phoneTake(resultCode);
break;
case CROP_PHOTO:
phoneCrop(resultCode);
break;
case CHOOSE_PHOTO:
phoneChoose(resultCode, data);
break;
default:
break;
}
}

五、 phoneTake方法:

// 拍照的回调
private void phoneTake(int resultCode) {
if (resultCode == RESULT_OK) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(imageUri, "image/*");
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, CROP_PHOTO); // 启动裁剪程序
}
}

六、 phoneCrop方法,裁剪的回调

// 裁剪的回调
private void phoneCrop(int resultCode) {
if (resultCode == RESULT_OK) {
try {
BufferedInputStream inputStream = new BufferedInputStream(getContentResolver().openInputStream(imageUri));
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
picture.setImageBitmap(bitmap); // 将裁剪后的照片显示出来
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

七、 声明权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

从相册中选择照片

一、 从相册中选择照片:

// 从相册中选择照片:
public void choosePhone(View view) {
imageUri = Uri.fromFile(createImageFile("choosephone.jpg"));
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.putExtra("crop", true);
intent.putExtra("scale", true);
startActivityForResult(intent, CHOOSE_PHOTO);
}

二、 从相册中选取图片,再显示

// 从相册中选取图片,再显示
private void phoneChoose(int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
ContentResolver resolver = getContentResolver();
Uri originalUri = data.getData();
try {
Bitmap photo = MediaStore.Images.Media.getBitmap(resolver, originalUri);
if (photo != null) {
picture.setImageBitmap(photo);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

友情链接

android基础---->摄像头与相册的调用的更多相关文章

  1. 使用HTML5+调用手机摄像头和相册

    前言:前端时间使用HTML5做了一个WEB端APP,其中用到了H5页面调用手机摄像头的功能,当时也是花了不少时间去研究.最终是采用了HTML5plus(HTML5+)的方式完成了该功能,现将具体方法简 ...

  2. Android基础总结(10)——手机多媒体的运用:通知、短信、相机、视频播放

    Android提供了一系列的API,是我们可以在程序中调用很多手机的多媒体资源,从而编写出更加丰富的应用程序. 1.通知的使用 通知(Notification)是Android中比较有特色的一个功能, ...

  3. iOS摄像头和相册-UIImagePickerController-浅析(转)

    iOS摄像头和相册-UIImagePickerController-浅析(转) 转自: http://blog.sina.com.cn/s/blog_7b9d64af0101cfd9.html 在一些 ...

  4. Android基础新手教程——4.1.1 Activity初学乍练

    Android基础新手教程--4.1.1 Activity初学乍练 标签(空格分隔): Android基础新手教程 本节引言: 本节開始解说Android的四大组件之中的一个的Activity(活动) ...

  5. Android基础测试题(二)

    今天给大家带来的是Android基础测试题(二) 题目要求: 定义一个5位长度的整型数组并初始化,然后构建方法根据用户传入的数字判断是否存在数组中,如果存在,返回所在位置,如果不存在,返回-1 首先第 ...

  6. html5调取手机摄像头或相册

    html5调用手机摄像头或者相册 由于input的type=file 格式的文件的界面并不是我们所希望的界面,所以在此我隐藏input,自定义样式,这个样式就在<a>中自己定义,这里我就不 ...

  7. iOS摄像头和相册-UIImagePickerController常用操作

    在一些应用中,我们需要用到iOS设备的摄像头进行拍照,视频.并且从相册中选取我们需要的图片或者视频. 关于iOS摄像头和相册的应用,可以使用UIImagePickerController类来完成控制. ...

  8. 深入理解gradle编译-Android基础篇

    深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...

  9. android基础---->JSON数据的解析

    上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...

随机推荐

  1. C语言 · 完美的代价

    基础练习 完美的代价   时间限制:1.0s   内存限制:512.0MB        锦囊1 使用贪心算法. 锦囊2 从左到右枚举每个字符,移动对应字符.个数为单的字符放中间.   问题描述 回文 ...

  2. sql server 删除主键、外键、索引、约束的脚本

    最近公司项目要升级新版本,涉及到数据库升级中各种约束.亦是整理出如下脚本方便以后查询. --删除全文索引 DECLARE c0 cursor for SELECT'DROP FULLTEXT INDE ...

  3. tmpx75 I2C 温度传感器驱动程序添加

    在kernel 内 make menuconfig 加入相关选项 Device Drivers ---> <*> Hardware Monitoring support ---> ...

  4. [Javascript]右侧悬浮框

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. DataTable的AcceptChanges()和RejectChanges()方法

    一.DataTable.AcceptChanges()方法 提交自上次调用AcceptChanges()方法以来对该表进行的所有更改.调用AcceptChanges()时,任何扔处于编辑模式的Data ...

  6. 开源直播OBS ( Open Broadcaster Software ) 多机位,多场景切换

    项目主页:https://obsproject.com/download 软件是基于MFC的,下载源码后一次性就可以编译通过,使用很简单. 使用了以下开源库: x264                 ...

  7. CSS格式化 CSS代码压缩工具

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 关于Unity中UI中的Slider,Toggle和InputField等节点

    一.Slider节点 1.创建一个Canvas 2.对Canvas进行一些初始化操作 3.创建一个Image的UI节点在Canvas下面作为子节点 4.把Image铺满整个Canvas,把宽高设置为6 ...

  9. 【转】7Z命令行解压缩

    7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <co ...

  10. 基于swoole扩展实现真正的PHP数据库连接池

    转自:  http://rango.swoole.com/archives/265 PHP的数据库连接池一直以来都是一个难题,很多从PHP语言转向Java的项目,大多数原因都是因为Java有更好的连接 ...