a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

android 調用系統的照相機和圖庫實例詳解

2020-04-11 12:37:31
字體:
來源:轉載
供稿:網友
android手機有自帶的照相機和圖庫,我們做的項目中有時用到上傳圖片到服務器,今天做了一個項目用到這個功能,所以把我的代碼記錄下來和大家分享,第一次寫博客希望各位大神多多批評。
首先上一段調用android相冊和相機的代碼:
復制代碼 代碼如下:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//調用android自帶的照相機
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);//調用android的圖庫
startActivityForResult(i, 2);

復制代碼 代碼如下:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//完成照相后回調用此方法
super.onActivityResult(requestCode, resultCode, data);
case 1:
switch (resultCode) {
case Activity.RESULT_OK://照相完成點擊確定
String sdStatus = Environment.getExternalStorageState();
if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 檢測sd是否可用
Log.v("TestFile", "SD card is not avaiable/writeable right now.");
return; }
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");// 獲取相機返回的數據,并轉換為Bitmap圖片格式
FileOutputStream b = null;
File file = new File("/sdcard/pk4fun/");
file.mkdirs();// 創建文件夾,名稱為pk4fun // 照片的命名,目標文件夾下,以當前時間數字串為名稱,即可確保每張照片名稱不相同。網上流傳的其他Demo這里的照片名稱都寫死了,則會發生無論拍照多少張,后一張總會把前一張照片覆蓋。細心的同學還可以設置這個字符串,比如加上“IMG”字樣等;然后就會發現sd卡中myimage這個文件夾下,會保存剛剛調用相機拍出來的照片,照片名稱不會重復。
String str = null;
Date date = null;
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");// 獲取當前時間,進一步轉化為字符串
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);// 把數據寫入文件
} 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); // 圖片編號
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;
}

最后記得加權限
<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" />
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久国产精品精品国产 | 成年人网站在线免费观看 | 欧美精品一区二区三区四区 | 伊人啪啪| 久久国产成人午夜av影院宅 | 亚洲一区二区 | 欧美日韩激情在线 | 偷拍自拍亚洲色图 | 综合久久久久久久 | 国产精品嫩草影院88av漫画 | 国产精品视频看看 | 不卡视频一区二区三区 | 亚洲欧美国产一区二区三区 | 亚洲精品久久久久久久久久久 | 久久伊人精品视频 | 午夜视频在线观看网站 | 成人免费视频网址 | 毛片久久久 | 国产精品久久久久久久久久东京 | 亚洲人黄色片 | 成人精品久久 | 中文字幕在线电影 | 国产一区国产二区在线观看 | 国产精品一二三区 | 欧美综合网 | 永久精品 | 久久国产精品免费一区二区三区 | 成人一区视频 | 欧美爆操 | 青青综合网| 国产在线观看一区二区三区 | 三级免费毛片 | 欧美区在线 | 成人在线精品 | 国产精品久久久久久久久免费高清 | 午夜精品久久久久久久久久久久 | 久久久久国产一区二区三区 | 国产亚洲精品久久久久动 | 日本一区二区三区免费观看 | 久久69国产一区二区蜜臀 | 精品三级在线观看 |