編輯:關於android開發
在常規應用開發過程中,我們經常會使用到手機的相機功能,通過調用系統相機方便快捷的幫助我們實現拍照功能,本篇我將帶領大家實現一下,如何通過調用系統相機實現拍照。
第一種:調用系統相機拍照,通過返回的照片縮略圖展示我們的拍照圖片
打開系統相機:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, TAKE_PICTURE);// 如果用Activity.RESULT_OK,onActivityResult()不會被回調
處理拍照返回參數:
protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { // 獲取系統默認返回圖片(縮略圖) if (requestCode == TAKE_PICTURE) { Bundle bundle = data.getExtras(); bitmap = (Bitmap) bundle.get("data"); } // 顯示圖片 iv.setImageBitmap(bitmap); } }
是不是很簡單,不過有一點很不好,那就是返回的圖片是縮略圖,那麼如何獲得拍攝的高清圖片呢?
第二種:保存拍照的照片到指定文件,通過文件路徑顯示拍照照片
private static final int ADD_IMAGE_ONE = 1;//拍攝照片返回值 private String path;//拍照後圖片保存的路徑 private String fileName;//保存文件的文件名 path = Environment.getExternalStorageDirectory() + "/CeShi/Image/"; File file = new File(path);//創建路徑 if (!file.exists()) { file.mkdirs(); } fileName = "copyImage.jpg"; File f = new File(path+fileName); if(!f.exists()){ try { f.createNewFile();//創建文件 } catch (IOException e1) { e1.printStackTrace(); } } Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); startActivityForResult(intent, ADD_IMAGE_ONE);
拍攝完成後數據處理:
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK){ switch (requestCode) { case ADD_IMAGE_ONE://拍照照片 // Toast.makeText(mContext, "拍照完成", Toast.LENGTH_SHORT).show(); iv.setImageBitmap(BitmapFactory.decodeFile(path + fileName)); break; default: break; } } }
好了,關於調用系統相機完成照片拍攝的知識,就為總結完畢,希望對大家有所幫助。源碼下載:http://pan.baidu.com/s/1sjZMUQx
android:padding和android:layout_margin的區別,margin和padding是隔開元素中最常用的兩個屬性 ◆Padding屬性: Pad
Android 輪換頁面+TabHost 實例,androidtabhost最終效果展示: 首先我們需要一個ViewPager控件,不過可以發現在左側的控
Android 幾種消息推送方案總結,android方案轉載請注明出處:http://www.cnblogs.com/Joanna-Yan/p/6241354.html
谷歌官方SwipeRefreshLayout下拉刷新的用法。,swiperefreshlayout《Android SwipeRefreshLayout:谷歌官方SDK包