android 调用系统的照相机和图库
?
???????????????? android手機(jī)有自帶的照相機(jī)和圖庫(kù),我們做的項(xiàng)目中有時(shí)用到上傳圖片到服務(wù)器,今天做了一個(gè)項(xiàng)目用到這個(gè)功能,所以把我的代碼記錄下來(lái)和大家分享,第一次寫(xiě)博客希望各位大神多多批評(píng)。
???????????? 首先上一段調(diào)用android相冊(cè)和相機(jī)的代碼:
??
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//調(diào)用android自帶的照相機(jī)photoUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;startActivityForResult(intent, 1);?
Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//調(diào)用android的圖庫(kù)startActivityForResult(i, 2);?
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { //完成照相后回調(diào)用此方法super.onActivityResult(requestCode, resultCode, data);case 1:switch (resultCode) {case Activity.RESULT_OK://照相完成點(diǎn)擊確定
String sdStatus = Environment.getExternalStorageState();????
????????????? if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 檢測(cè)sd是否可用?????
????????????????? Log.v("TestFile",??????? "SD card is not avaiable/writeable right now.");?????
???????????????????? return;???? }
????????????? ?Bundle bundle = data.getExtras();????
?????????????????? Bitmap bitmap = (Bitmap) bundle.get("data");// 獲取相機(jī)返回的數(shù)據(jù),并轉(zhuǎn)換為Bitmap圖片格式????
??????????????????? FileOutputStream b = null;????
??????????????????????? File file = new File("/sdcard/pk4fun/");????
???????????????????????? file.mkdirs();// 創(chuàng)建文件夾,名稱(chēng)為pk4fun???? // 照片的命名,目標(biāo)文件夾下,以當(dāng)前時(shí)間數(shù)字串為名稱(chēng),即可確保每張照片名稱(chēng)不相同。網(wǎng)上流傳的其他Demo這里的照片名稱(chēng)都寫(xiě)死了,則會(huì)發(fā)生無(wú)論拍照多少?gòu)?#xff0c;后一張總會(huì)把前一張照片覆蓋。細(xì)心的同學(xué)還可以設(shè)置這個(gè)字符串,比如加上“IMG”字樣等;然后就會(huì)發(fā)現(xiàn)sd卡中myimage這個(gè)文件夾下,會(huì)保存剛剛調(diào)用相機(jī)拍出來(lái)的照片,照片名稱(chēng)不會(huì)重復(fù)。????
??????????????????? String str = null;????
?????????????????? Date date = null;????
??????????????????? SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");// 獲取當(dāng)前時(shí)間,進(jìn)一步轉(zhuǎn)化為字符串????
?????????????????????? date = new Date(resultCode);????
???????????????? str = format.format(date);????
???????????????????? String fileName = "/sdcard/myImage/" + str + ".jpg";????
????????????????? sendBroadcast(fileName);????
?????????????????? try {?????
???????????????????? b = new FileOutputStream(fileName);?????
??????????????????? bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把數(shù)據(jù)寫(xiě)入文件???
??????????????? ?} catch (FileNotFoundException e) {?????
?????????????????? e.printStackTrace();????
??????????????????? } finally {????
???????????????????? ?try {????
???????????????????? ?b.flush();?????
???????????????????????????? b.close();?????
??????????????????????????? } catch (IOException e) {???
??????????????????????? ?e.printStackTrace();???
???????????????? ? }????
???????????? }???
break;case Activity.RESULT_CANCELED:// 取消break;}break;case 2:switch (resultCode) {case Activity.RESULT_OK: {Uri uri = data.getData();Cursor cursor = mActivity.getContentResolver().query(uri, null,null, null, null);cursor.moveToFirst();String imgNo = cursor.getString(0); // 圖片編號(hào)String imgPath = cursor.getString(1); // 圖片文件路徑String imgSize = cursor.getString(2); // 圖片大小String imgName = cursor.getString(3); // 圖片文件名 cursor.close();// Options options = new BitmapFactory.Options();// options.inJustDecodeBounds = false;// options.inSampleSize = 10;// Bitmap bitmap = BitmapFactory.decodeFile(imgPath, options); }break;case Activity.RESULT_CANCELED:// 取消break;}break;}最后記得加權(quán)限
??? <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
??? <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
??? <uses-permission android:name="android.permission.CAMERA" />
??? <uses-permission android:name="android.permission.RECORD_AUDIO" />
??? <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
???
轉(zhuǎn)載于:https://www.cnblogs.com/android-qian/archive/2012/12/06/2805248.html
總結(jié)
以上是生活随笔為你收集整理的android 调用系统的照相机和图库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 选择自己用的到的文件编译一个CEGUIS
- 下一篇: Java学习日记----反射