博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android如何拍照以及返回拍的图片(经过验证的实际例子)
阅读量:7070 次
发布时间:2019-06-28

本文共 3165 字,大约阅读时间需要 10 分钟。

package a.test;

import java.io.ByteArrayOutputStream;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

import android.app.Activity;

import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.Gravity;
import android.widget.ImageView;
import android.widget.Toast;

public class a extends Activity {

 /** Called when the activity is first created. */
 String SD_CARD_TEMP_DIR;
 private byte[] mContent;
 Bitmap myBitmap;

 @Override

 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  //
  SD_CARD_TEMP_DIR = Environment.getExternalStorageDirectory()
    + File.separator + "tmpPhoto.jpg";
  Intent takePictureFromCameraIntent = new Intent(
    MediaStore.ACTION_IMAGE_CAPTURE);
  takePictureFromCameraIntent.putExtra(
    android.provider.MediaStore.EXTRA_OUTPUT, Uri
      .fromFile(new File(SD_CARD_TEMP_DIR)));
  startActivityForResult(takePictureFromCameraIntent, 10);

  //

 }

 //

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  ContentResolver resolver = getContentResolver();

  try {

   File f = new File(SD_CARD_TEMP_DIR);
   try {
    Uri capturedImage = Uri
      .parse(android.provider.MediaStore.Images.Media
        .insertImage(getContentResolver(), f
          .getAbsolutePath(), null, null));
    // Log.i("camera", "Selected image: " +
    // capturedImage.toString());
    // f.delete();

    Toast toast = Toast.makeText(getApplicationContext(),

      capturedImage.toString(), Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0);
    toast.show();
    //
    ImageView a = (ImageView) findViewById(R.id.imageView1);
    // 将图片内容解析成字节数组
    mContent = readStream(resolver.openInputStream(Uri
      .parse(capturedImage.toString())));
    // 将字节数组转换为ImageView可调用的Bitmap对象
    myBitmap = getPicFromBytes(mContent, null);
    // //把得到的图片绑定在控件上显示
    a.setImageBitmap(myBitmap);

    //

    //

   } catch (FileNotFoundException e) {

    // TODO Auto-generated catch block
    e.printStackTrace();
   }

  } catch (Exception e) {

   // TODO: handle exception
   System.out.println(e.getMessage());
  }
 }

 //

 public static Bitmap getPicFromBytes(byte[] bytes,
   BitmapFactory.Options opts) {
  if (bytes != null)
   if (opts != null)
    return BitmapFactory.decodeByteArray(bytes, 0, bytes.length,
      opts);
   else
    return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
  return null;
 }

 //

 public static byte[] readStream(InputStream inStream) throws Exception {
  byte[] buffer = new byte[1024];
  int len = -1;
  ByteArrayOutputStream outStream = new ByteArrayOutputStream();
  while ((len = inStream.read(buffer)) != -1) {
   outStream.write(buffer, 0, len);
  }
  byte[] data = outStream.toByteArray();
  outStream.close();
  inStream.close();
  return data;

 }

 //

 public static Bitmap getLoacalBitmap(String url) {
  try {
   FileInputStream fis = new FileInputStream(url);
   return BitmapFactory.decodeStream(fis);
  } catch (FileNotFoundException e) {
   e.printStackTrace();
   return null;
  }
 }
 //
}

转载地址:http://yphll.baihongyu.com/

你可能感兴趣的文章
第181天:HTML5——视频、音频
查看>>
浏览器内核
查看>>
Java数据库连接
查看>>
修改tomcat的默认编码
查看>>
Android中XML格式数据的简单使用
查看>>
css样式初始化
查看>>
Static静态---笔记A
查看>>
算法之旅
查看>>
string.xml中的字符添加空格
查看>>
CF 85E Guard Towers——二分图染色
查看>>
C#创建datatable (转)
查看>>
问题小结
查看>>
6,视图和路由
查看>>
空链接推荐用"###"。
查看>>
BASE64编码和解码(VC源代码) 并 内存加载 CImage 图像
查看>>
A*算法 (MATLAB) -路径搜索
查看>>
HTML <form> 标签的 enctype 属性
查看>>
git从自己账号切换到公司的账号,剪项目失败
查看>>
go语言的“MSDN”(ubuntu12 && 通过apt-get安装的go语言)
查看>>
sqlmap常用技巧
查看>>