关于调用系统相机以及压缩照片
生活随笔
收集整理的這篇文章主要介紹了
关于调用系统相机以及压缩照片
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
style="DISPLAY: none" frameborder="0">
style="Z-INDEX: 9999; POSITION: absolute; DISPLAY: none" id="bdsIfr" frameborder="0">
首先上一段調用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" /> QQ空間 新浪微博 騰訊微博 搜狐微博 人人網 開心網 百度搜藏 更多 8 Tags: 系統 照相機 圖庫 復制鏈接 收藏本文 打印本文 關閉本文 返回首頁 上一篇: android 左右滑動+索引圖標實現方法與代碼 下一篇: Android中Android Virtual Device(AVD)使用教程
分享到
- 一鍵分享
- QQ空間
- 新浪微博
- 百度云收藏
- 人人網
- 騰訊微博
- 百度相冊
- 開心網
- 騰訊朋友
- 百度貼吧
- 豆瓣網
- 搜狐微博
- 百度新首頁
- QQ好友
- 和訊微博
- 更多...
百度分享
腳 本 之 家 www.jb51.net- 首頁
- 網頁制作
- 腳本專欄
- 腳本下載
- 網絡編程
- 數據庫
- CMS教程
- 電子書籍
- 平面設計
- 媒體動畫
- 操作系統
- 網站運營
- 網絡安全
- C#教程
- vb
- vb.net
- C 語言
- Java編程
- Delphi
- java
- Android
- IOS
- Swift
- 其它相關
- 特色欄目: vbscript 正則表達式 javascript 批處理 服務器軟件 素材下載
android 調用系統的照相機和圖庫實例詳解
作者: 字體:[ 增加 減小] 類型:轉載 android手機有自帶的照相機和圖庫,我們做的項目中有時用到上傳圖片到服務器,今天做了一個項目用到這個功能,所以把我的代碼記錄下來和大家分享,有需求的朋友可以參考下 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" /> QQ空間 新浪微博 騰訊微博 搜狐微博 人人網 開心網 百度搜藏 更多 8 Tags: 系統 照相機 圖庫 復制鏈接 收藏本文 打印本文 關閉本文 返回首頁 上一篇: android 左右滑動+索引圖標實現方法與代碼 下一篇: Android中Android Virtual Device(AVD)使用教程
相關文章
- 2013-06-06Android Metro菜單實現思路及代碼
- 2013-04-04基于Android AppWidgetProvider的使用介紹
- 2013-06-06Android中使用ListView繪制自定義表格技巧分享
- 2013-12-12android 上傳文件到服務器代碼實例
- 2013-01-01android 類似微信的搖一搖功能實現思路及代碼
- 2014-06-06六款值得推薦的android(安卓)開源框架簡介
- 2013-01-01Android在listview添加checkbox實現原理與代碼
- 2013-11-11Activity生命周期實例講解
- 2013-03-03html5在android中的使用問題及技巧解讀
- 2012-12-12Android Bitmap詳細介紹
文章評論
社交帳號登錄:
- 微博
- 人人
- 豆瓣
- 更多?
- 開心
- 網易
- 搜狐
- 百度
- 谷歌
- 1條評論
- love楓亮
有錯誤哦 不知道怎么改哦
2014年5月8日 回復 頂 轉發 舉報
腳本之家正在使用多說
style="box-sizing: content-box; position: relative; padding: 0px; border-width: 0px; margin: 0px; width: 100%; display: block; max-width: none; background-image: none; background-attachment: scroll; background-color: transparent; float: none; height: 100%; max-height: none; clear: none; overflow: hidden; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; box-shadow: none; background-position: 0% 0%; background-repeat: repeat repeat; " frameborder="0" allowtransparency="" scrolling="no">最 近 更 新
- android讀取raw文件示例
- 微信公眾平臺開發入門教程(SAE方倍工作室
- android開發之歡迎界面的小例子
- Android仿UC底部菜單欄實現原理與代碼
- Android 初識 Helloworld 詳解
- Android RadioButton單選框的使用方法
- Android開發筆記 今天學到的一些屬性
- Eclipse開發環境導入android sdk的sample
- Android中的windowSoftInputMode屬性詳解
- android圖像繪制(一)多種方法做圖像鏡像
熱 點 排 行
- 1微信公眾平臺開發入門教程(圖文詳
- 2Android基礎之使用Fragment控制切
- 3一看就懂的Android APP開發入門教
- 4android PopupWindow 和 Activit
- 5Android 動畫之TranslateAnimati
- 6Android Bitmap詳細介紹
- 7Android應用開發SharedPreferenc
- 8android listview優化幾種寫法詳
- 9android TextView設置中文字體加
- 10Android 動畫之ScaleAnimation應
總結
以上是生活随笔為你收集整理的关于调用系统相机以及压缩照片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 亚马逊跟卖什么意思?跟卖时这些问题要注意
- 下一篇: SAVI 技术(二)