调用系统Camera
来源:互联网 发布:淘宝如何打印电子面单 编辑:程序博客网 时间:2024/05/17 02:41
package com.example.mcamera;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener {
Button StartCamera1;
Button StartCamera2;
ImageView showImage;
final static int REQ_Code1 = 1;
final static int REQ_Code2 = 1;
String mFilePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
//得到sdcard的绝对路径
mFilePath=Environment.getExternalStorageDirectory().getPath();
mFilePath=mFilePath+"/"+"pic.png";
}
private void init() {
StartCamera1 = (Button) findViewById(R.id.startCamera1);
StartCamera2 = (Button) findViewById(R.id.startCamera2);
showImage = (ImageView) findViewById(R.id.showImageView);
StartCamera1.setOnClickListener(this);
StartCamera2.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.startCamera1:
//通过隐式intent启动系统Camera 进行拍照
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//通过startActivityForResult这种Activity启动方式将结果返回
startActivityForResult(intent, REQ_Code1);
break;
case R.id.startCamera2:
Intent intent1=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//指定所拍的照片存放到自己给定的路径
Uri uri=Uri.fromFile(new File(mFilePath));
intent1.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent1, REQ_Code2);
break;
default:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode==RESULT_OK) {
if (requestCode==REQ_Code1) {
Bundle bundle=data.getExtras();
//得到的Bitmap其实是缩略图
Bitmap bitmap=(Bitmap) bundle.get("data");
showImage.setImageBitmap(bitmap);
}else if (requestCode==REQ_Code2) {
try {
FileInputStream fis=new FileInputStream(new File(mFilePath));
//此处得到的Bitmap 是拍照得到的真实图片
Bitmap bitmap=BitmapFactory.decodeStream(fis);
showImage.setImageBitmap(bitmap);
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
注意 :第二种对Bitmap 操做要添加对SD卡的读写权限
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener {
Button StartCamera1;
Button StartCamera2;
ImageView showImage;
final static int REQ_Code1 = 1;
final static int REQ_Code2 = 1;
String mFilePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
//得到sdcard的绝对路径
mFilePath=Environment.getExternalStorageDirectory().getPath();
mFilePath=mFilePath+"/"+"pic.png";
}
private void init() {
StartCamera1 = (Button) findViewById(R.id.startCamera1);
StartCamera2 = (Button) findViewById(R.id.startCamera2);
showImage = (ImageView) findViewById(R.id.showImageView);
StartCamera1.setOnClickListener(this);
StartCamera2.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.startCamera1:
//通过隐式intent启动系统Camera 进行拍照
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//通过startActivityForResult这种Activity启动方式将结果返回
startActivityForResult(intent, REQ_Code1);
break;
case R.id.startCamera2:
Intent intent1=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//指定所拍的照片存放到自己给定的路径
Uri uri=Uri.fromFile(new File(mFilePath));
intent1.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent1, REQ_Code2);
break;
default:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode==RESULT_OK) {
if (requestCode==REQ_Code1) {
Bundle bundle=data.getExtras();
//得到的Bitmap其实是缩略图
Bitmap bitmap=(Bitmap) bundle.get("data");
showImage.setImageBitmap(bitmap);
}else if (requestCode==REQ_Code2) {
try {
FileInputStream fis=new FileInputStream(new File(mFilePath));
//此处得到的Bitmap 是拍照得到的真实图片
Bitmap bitmap=BitmapFactory.decodeStream(fis);
showImage.setImageBitmap(bitmap);
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
注意 :第二种对Bitmap 操做要添加对SD卡的读写权限
0 0
- Android调用系统camera
- 调用系统Camera
- Camera调用系统相册
- Camera调用系统照相机
- Android多媒体---Camera(调用系统Camera,非自定义)
- 初识Camera,调用系统拍照录像程序
- Android Camera 调用系统相机应用
- Android 调用系统播放器,调用系统Camera
- Android 调用系统播放器,调用系统Camera
- Android 调用系统播放器,调用系统Camera
- Android4.2之Camera系统HAL调用流程
- 调用系统的Camera和相册/压缩照片
- Android4.2之Camera系统HAL调用流程
- android 系统相机调用和自定义相继两个 SurfaceView Camera
- Android Camera解析(上) 调用系统相机拍摄照片
- Android Camera(一) 调用系统相机应用
- Android4.2之Camera系统HAL调用流程
- Android 照相机Camera 调用系统照相机返回data为空
- PHPstorm
- mvc自定义上传控件错误异常提示
- bootstrap手风琴menu
- 杭电ACM1016(dfs)
- SQL语句汇总(一)
- 调用系统Camera
- Vmware中RedHat命令行和图形界面切换
- C++primer plus第六版课后编程练习答案2.6
- 怎么查看redhat liunx 是32位还是64位
- the economist
- 打开Wireshark提示"The NPF driver isn’t running"
- SQL语句汇总(二)
- CIDR与路由汇总的区别
- 电脑显示屏的性能,价位初步研究