Android調用系統攝像頭拍照,并把照片保存到本地,然后顯示在Imageview

nnkde 9年前發布 | 3K 次閱讀 Java Android

img=(ImageView)findViewById(R.id.img);
            take_picture=(Button)findViewById(R.id.take_picture);
            take_picture.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) { // TODO Auto-generated method stub
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); startActivityForResult(intent,Activity.DEFAULT_KEYS_DIALER); } });
} protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);

   if (resultCode == Activity.RESULT_OK) {

       String sdStatus = Environment.getExternalStorageState();
        if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 檢測sd是否可用
            return;
        }
        Bundle bundle = data.getExtras();
        Bitmap bitmap = (Bitmap) bundle.get("data");// 獲取相機返回的數據,并轉換為Bitmap圖片格式
        FileOutputStream b = null;
        File file = new File("/sdcard/myImage/");
        file.mkdirs();// 創建文件夾,名稱為myimage

       //照片的命名,目標文件夾下,以當前時間數字串為名稱,即可確保每張照片名稱不相同。
        String str=null;
        Date date=null;
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");//獲取當前時間,進一步轉化為字符串
        date =new Date();
        str=format.format(date);
        String fileName = "/sdcard/myImage/"+str+".jpg";
       try {
            b = new FileOutputStream(fileName);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把數據寫入文件
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                b.flush();
                b.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (data!= null) {
                Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data");
                System.out.println("fdf================="+data.getDataString());
                img.setImageBitmap(cameraBitmap);

               System.out.println("成功======"+cameraBitmap.getWidth()+cameraBitmap.getHeight());
        }
        }
   }
}
}</pre> 


 本文由用戶 nnkde 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!