国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

android 調(diào)用系統(tǒng)的照相機(jī)和圖庫(kù)實(shí)例詳解

2020-04-11 12:37:31
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
android手機(jī)有自帶的照相機(jī)和圖庫(kù),我們做的項(xiàng)目中有時(shí)用到上傳圖片到服務(wù)器,今天做了一個(gè)項(xiàng)目用到這個(gè)功能,所以把我的代碼記錄下來(lái)和大家分享,第一次寫博客希望各位大神多多批評(píng)。
首先上一段調(diào)用android相冊(cè)和相機(jī)的代碼:
復(fù)制代碼 代碼如下:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//調(diào)用android自帶的照相機(jī)
photoUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
startActivityForResult(intent, 1);

復(fù)制代碼 代碼如下:

Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//調(diào)用android的圖庫(kù)
startActivityForResult(i, 2);

復(fù)制代碼 代碼如下:

@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)建文件夾,名稱為pk4fun // 照片的命名,目標(biāo)文件夾下,以當(dāng)前時(shí)間數(shù)字串為名稱,即可確保每張照片名稱不相同。網(wǎng)上流傳的其他Demo這里的照片名稱都寫死了,則會(huì)發(fā)生無(wú)論拍照多少?gòu)?,后一張總?huì)把前一張照片覆蓋。細(xì)心的同學(xué)還可以設(shè)置這個(gè)字符串,比如加上“IMG”字樣等;然后就會(huì)發(fā)現(xiàn)sd卡中myimage這個(gè)文件夾下,會(huì)保存剛剛調(diào)用相機(jī)拍出來(lái)的照片,照片名稱不會(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ù)寫入文件
} 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" />
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 京山县| 饶阳县| 宾川县| 扶余县| 水富县| 德阳市| 铜川市| 遂宁市| 泸溪县| 宁津县| 商洛市| 汾阳市| 尼玛县| 南岸区| 金华市| 定西市| 烟台市| 军事| 嘉鱼县| 林甸县| 上杭县| 田东县| 平潭县| 周口市| 洪江市| 安化县| 丹棱县| 三原县| 京山县| 莲花县| 哈密市| 临夏县| 宁德市| 灵武市| 东平县| 琼海市| 湘潭市| 沅江市| 枞阳县| 杭锦后旗| 太湖县|