Andriod Camra的简单使用

1290阅读 0评论2015-03-21 vibe26
分类:Android平台

在AndroidMainfest.xml中要添加各种权限,并且取消硬件加速

点击(此处)折叠或打开

  1. package cn.com.xiebiao.mytest;

  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.graphics.BitmapFactory;
  5. import android.net.Uri;
  6. import android.os.Bundle;
  7. import android.os.Environment;
  8. import android.provider.MediaStore;
  9. import android.widget.ImageView;
  10. import java.io.File;
  11. import java.io.FileInputStream;
  12. import java.io.FileNotFoundException;
  13. import java.io.IOException;
  14. import java.io.InputStream;

  15. public class MainActivity extends Activity{
  16.     private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
  17.     private ImageView imageView;
  18.     Uri uri;
  19.     File myfile;
  20.     File dir;

  21.     @Override
  22.     public void onCreate(Bundle savedInstanceState) {
  23.         super.onCreate(savedInstanceState);
  24.         setContentView(R.layout.activity_main);

  25.         imageView=(ImageView)this.findViewById(R.id.imageView);
  26.         //获取外部存储卡的路径,并且将图片保存为my.jpg
  27.         dir=Environment.getExternalStorageDirectory();
  28.         myfile=new File(dir,"my.jpg");

  29.         //将文件路径转为uri传给intent
  30.         uri=Uri.fromFile(myfile);
  31.         Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  32.         //通知照相机保存照片到uri
  33.         intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
  34.         startActivityForResult(intent,CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
  35.     }

  36.     @Override
  37.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  38.        if(requestCode==CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE && resultCode==RESULT_OK) {
  39.            try {
  40.                //读取存储卡中的图片在imageView中显示出来
  41.                InputStream inputStream=new FileInputStream(myfile);
  42.                byte[] buffer=new byte[inputStream.available()];
  43.                inputStream.read(buffer);
  44.                imageView.setImageBitmap(BitmapFactory.decodeByteArray(buffer,0,buffer.length));
  45.            } catch (FileNotFoundException e) {
  46.                e.printStackTrace();
  47.            } catch (IOException e) {
  48.                e.printStackTrace();
  49.            }
  50.        }
  51.     }
  52. }

上一篇:Bitmap too large to be uploaded into a texture exception解决方案
下一篇:Java实现C/S客户端间聊天