赞
踩
- package com.wyl.example;
-
- import java.io.File;
- import java.io.FileOutputStream;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.graphics.Bitmap.CompressFormat;
- import android.graphics.Matrix;
- import android.os.Bundle;
- import android.os.Environment;
- import android.provider.MediaStore;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.ImageView;
-
- //定义了本实例的主要Activity
- public class MainActivity extends Activity {
- private static final int RESULT_CAPTURE_IMAGE = 1;// 照相的requestCode
- private String strImgPath = "";// 照片文件绝对路径
- // 定义拍照的按钮
- private Button btnTakePhoto;
- // 定义预览图片的imageview
- private ImageView ivSurface;
- //保存的拍照文件
- private File out;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // 得到布局中的所有对象
- findView();
- // 设置对象的监听器
- setListener();
- }
-
- private void findView() {
- // 得到布局中的所有对象
- btnTakePhoto = (Button) findViewById(R.id.btn_takephoto);
- ivSurface = (ImageView) findViewById(R.id.iv_image);
- }
-
- // 设置对象的监听器
- private void setListener() {
- btnTakePhoto.setOnClickListener(listener);
- }
-
- OnClickListener listener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- switch (v.getId()) {
- // 拍照的按钮
- case R.id.btn_takephoto:
- cameraMethod();
- break;
- }
- }
- };
-
- //照相功能
- private void cameraMethod() {
- // 实例化拍照的Intent
- Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- // 设置图片存放的路径,Environment.getExternalStorageDirectory()得到SD卡的根目录
- strImgPath = Environment.getExternalStorageDirectory().toString()
- + "/CONSDCGMPIC/";// 存放照片的文件夹
- // 给相片命名
- String fileName = new SimpleDateFormat("yyyyMMddHHmmss")
- .format(new Date()) + ".jpg";// 照片命名
- // 检查存放的路径是否存在,如果不存在则创建目录
- out = new File(strImgPath);
- if (!out.exists()) {
- out.mkdirs();
- }
- // 在此目录下创建文件
- out = new File(strImgPath, fileName);
- // 该照片的绝对路径
- strImgPath = strImgPath + fileName;
- // 启动ACITIVITY
- startActivityForResult(imageCaptureIntent, RESULT_CAPTURE_IMAGE);
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- switch (requestCode) {
- case RESULT_CAPTURE_IMAGE:// 拍照
- // 如果返回为正确的的结果
- if (resultCode == RESULT_OK) {
- // intent.getExtras()得到intent所附带的额外数据,在这也就是拍摄的图片
- Bundle extras = data.getExtras();
- // 得到额外的数据的data字段,转化为bitmap类型
- Bitmap b = (Bitmap) extras.get("data");
- // 实例化矩阵Matrix
- Matrix matrix = new Matrix();
- // 设置缩放
- matrix.postScale(5f, 4f);
- // 创建bitmap对象,并设置bitmap的参数
- b = Bitmap.createBitmap(b, 0, 0, b.getWidth(), b.getHeight(),
- matrix, true);
- // 设置imageview的图片资源
- ivSurface.setImageBitmap(b);
- try {
- // 把文件转化为outputstream
- FileOutputStream outStream = new FileOutputStream(out);
- // 把bitmap数据写入字符流中
- b.compress(CompressFormat.JPEG, 100, outStream);
- // 关闭字符流
- outStream.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- break;
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。