android调用照相机拍照获取照片并…
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调用照相机拍照获取照片并…相关推荐
- android调用照相机拍照获取照片并做简单剪裁
1.调用系统的照相机程序 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(int ...
- Android调用照相机拍照
之前写在别的网站上写博客.后来没有坚持下来,以至于账号密码都忘了,好啦说正事 Android调用照相机拍照 这个在现在的应用中很常见,首先如果拍照是应用的必要功能,那么应该令它在Google Play ...
- pc 和手机调用摄像头拍照 获取照片 好用
前端何如在代码中使用摄像头拍照功能 demo 部署服务器可以测试 <!DOCTYPE html> <html lang="en"><head>& ...
- Android调用相机拍照,照片被旋转的问题
问题描述:最近在做毕设,想在我的天气APP中加入一个添加图片水印的小功能,首先就是学习了郭霖老师的调用相机并显示的功能.起先是在华为的手机上调试(是一个我刚换下来的手机mate7)图片没有问题,可以正 ...
- Android调用相机拍照高清原图(兼容7.0)
在安卓更新7.0的版本后,要调用相机拍照获取原图则需要先把拍摄后的内容保存到目录,然后再借助provider调出来显示,相比以前可以说十分繁琐,但为了摆脱马赛克画质的困扰,为了更好的用户体验,还是硬着 ...
- Android调用照相机展示高清图片及展示图片时图片倾斜问题
Android调用照相机展示高清图片及展示图片时图片倾斜问题 一.概述 二.配置权限 三.封装CameraUtil工具类 1.Android调用照相机 2.调用系统相册 3.拍摄完毕或在相册选取好照片 ...
- android相机拍照代码,Android 调用相机拍照,适配到Android 10
今天写的博客是关于Android调用手机相机拍照并显示图片.这是一个很常用的功能,并且这个功能在Android6.0.7.0.10.0等版本上实现都有所不同,需要对Android各个版本进行兼容适配, ...
- MVP模式的Android 调用系统拍照,相册,剪裁,适配到7.0,修复拍照图片旋转问题
Android 调用系统拍照,相册,剪裁,适配到7.0,修复拍照图片旋转问题 直接上代码 首先添加拍照需要的权限 <uses-permission android:name="andr ...
- android 7调用摄像头,Android调用摄像头拍照(兼容7.0)
[实例简介] Android调用摄像头拍照(兼容7.0)Demo,原博客文章https://blog.csdn.net/u010356768/article/details/70808162 [实例截 ...
最新文章
- 一禁了之还是放开应用?面部识别“人红是非多”
- 【SPOJ-QTREE】树链剖分
- Wannafly summer camp
- CMake PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR区别
- 筋斗云newcloud错误码列表
- python怎么让画笔向下移动_Pandas 解决dataframe的一列进行向下顺移问题
- 灵魂拷问:到底要不要写单元测试,如何正确进行单元测试?
- ModelForm views.py
- Android TelephonyManager类
- 利用XML实现通用WEB报表打印(参考)
- java从入门到精通6
- ubuntu下vscode字体间距 空格间距太小 增大间距
- 前端html与css学习笔记总结篇(超详细)
- eclipse设置工作空间的默认编码和设置项目的编码
- 1072: 青蛙爬井 C语言
- MyBatis入门回顾
- 制作抖音超火的罗盘时钟(HTML+CSS+JS)
- Java-断点续传(分片上传)
- 这四款PC软件能够帮你在工作中轻松脱颖而出
- HttpServlet爆红
热门文章
- linux开机界面改为图画,CentOS6.5启动界面的更改的方法
- ubuntu10.04 NVIDA显卡驱动安装
- postgresql报错prepared statement ““S_84““ does not exist
- Python:蒙特卡洛算法以及三门问题
- 相关性系数和显著性水平
- python vs jython
- jlink_gdb_server
- 3周岁送福利结果出炉!
- 智能串口协议转换模块(四串口)SS-430
- matlab ode45 特姐,matlab 中ode45的源代码如何看懂