android 調(diào)用系統(tǒng)的照相機(jī)和圖庫(kù)實(shí)例詳解
首先上一段調(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);
@Override
protected 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)?,后一張總?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" />
- Android自定義照相機(jī)Camera出現(xiàn)黑屏的解決方法
- android照相、相冊(cè)獲取圖片剪裁報(bào)錯(cuò)的解決方法
- android 照相功能的簡(jiǎn)單實(shí)例
- Android 簡(jiǎn)單的照相機(jī)程序的實(shí)例代碼
- Android自定義照相機(jī)詳解
- 淺談Android 照相機(jī)權(quán)限的聲明
- Android 實(shí)現(xiàn)調(diào)用系統(tǒng)照相機(jī)拍照和錄像的功能
- Android 實(shí)現(xiàn)IOS選擇拍照相冊(cè)底部彈出的實(shí)例
- Android調(diào)用系統(tǒng)照相機(jī)拍照與攝像的方法
- Android實(shí)現(xiàn)簡(jiǎn)單的照相功能
相關(guān)文章
Android ListView自動(dòng)顯示隱藏布局的實(shí)現(xiàn)方法
這篇文章主要介紹了Android ListView自動(dòng)顯示隱藏布局的實(shí)現(xiàn)方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09Android應(yīng)用開(kāi)發(fā)之代碼混淆
Android項(xiàng)目中的混淆很easy,之所以寫(xiě)這篇總結(jié)是由于近期發(fā)現(xiàn)公司的代碼居然沒(méi)有混淆,反編譯后代碼隨手可得。很震驚。2014-07-07Android簡(jiǎn)易音樂(lè)播放器實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Android簡(jiǎn)易音樂(lè)播放器的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Android 通過(guò)SQLite數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)管理
SQLiteOpenHelper 是Android 提供的一個(gè)抽象工具類(lèi),負(fù)責(zé)管理數(shù)據(jù)庫(kù)的創(chuàng)建、升級(jí)工作。本文主要介紹了如何使用SQLite數(shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)管理,感興趣的可以了解一下2021-11-11Android ViewPager實(shí)現(xiàn)輪播圖效果
這篇文章主要為大家詳細(xì)介紹了Android ViewPager實(shí)現(xiàn)輪播圖效果的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02使用Android Studio創(chuàng)建OpenCV4.1.0 項(xiàng)目的步驟
這篇文章主要介紹了使用Android Studio創(chuàng)建OpenCV4.1.0 項(xiàng)目的步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10android6.0權(quán)限動(dòng)態(tài)申請(qǐng)框架permissiondispatcher的方法
下面小編就為大家分享一篇android6.0權(quán)限動(dòng)態(tài)申請(qǐng)框架permissiondispatcher的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01詳解Flutter網(wǎng)絡(luò)圖片本地緩存的實(shí)現(xiàn)
這篇文章主要為大家介紹了詳解Flutter網(wǎng)絡(luò)圖片本地緩存的實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04