程序截圖
step1:調用手機相機
通過 Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri uri=Uri.fromFile(new File("所照片需要存儲的路徑")) //顯示原圖的時候要用此方法,顯示縮略圖不用寫此代碼
intent.putExtra(MediaStore.EXTRA_OUTPUT,uri); //顯示原圖的時候要用此方法,顯示縮略圖不用寫此代碼
startActivityForResult(intent,1);
step2:拍攝結束之後獲取拍攝的照片
通過獲取返回的數據來得到拍攝的照片
1、縮略圖獲取
將上面返回的intent的數據取出
Bundle bundle=intent.getExtra();
BitMap bitmap=bundle.get("data");
然後就可以將bitmap顯示在ImageView中了
2、照片原圖的顯示
通過文件的讀取可以獲取文件 FileInputStream inputStream=new FileInputStream(“上面粗出的文件的路徑”);
然後通過BitMap的BitMapFactory.decodeStream(inputstream);將數據流轉換爲BitMap
然後就可以將bitmap顯示在ImageView中了
核心源碼:
public void startTakePhoto(View view) {
Intent intent =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri uri=Uri.fromFile(new File(mFilepath));
intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int arg0, int arg1, Intent arg2) {
// TODO Auto-generated method stub
super.onActivityResult(arg0, arg1, arg2);
if (arg1==RESULT_OK) {
if (arg0==1) {
//獲取拍攝到的圖片
// Bundle bundle=arg2.getExtras();
// Bitmap bitmap=(Bitmap) bundle.get("data");
FileInputStream inputStream;
try {
inputStream = new FileInputStream(mFilepath);
Bitmap bitmap=BitmapFactory.decodeStream(inputStream);
imageView.setImageBitmap(bitmap);
try {
inputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}