編輯:關於android開發
在常規應用開發過程中,我們經常會使用到手機的相機功能,通過調用系統相機方便快捷的幫助我們實現拍照功能,本篇我將帶領大家實現一下,如何通過調用系統相機實現拍照。
第一種:調用系統相機拍照,通過返回的照片縮略圖展示我們的拍照圖片
打開系統相機:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, TAKE_PICTURE);// 如果用Activity.RESULT_OK,onActivityResult()不會被回調
處理拍照返回參數:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
// 獲取系統默認返回圖片(縮略圖)
if (requestCode == TAKE_PICTURE) {
Bundle bundle = data.getExtras();
bitmap = (Bitmap) bundle.get("data");
}
// 顯示圖片
iv.setImageBitmap(bitmap);
}
}
是不是很簡單,不過有一點很不好,那就是返回的圖片是縮略圖,那麼如何獲得拍攝的高清圖片呢?
第二種:保存拍照的照片到指定文件,通過文件路徑顯示拍照照片
private static final int ADD_IMAGE_ONE = 1;//拍攝照片返回值
private String path;//拍照後圖片保存的路徑
private String fileName;//保存文件的文件名
path = Environment.getExternalStorageDirectory() + "/CeShi/Image/";
File file = new File(path);//創建路徑
if (!file.exists()) {
file.mkdirs();
}
fileName = "copyImage.jpg";
File f = new File(path+fileName);
if(!f.exists()){
try {
f.createNewFile();//創建文件
} catch (IOException e1) {
e1.printStackTrace();
}
}
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
startActivityForResult(intent, ADD_IMAGE_ONE);
拍攝完成後數據處理:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK){
switch (requestCode) {
case ADD_IMAGE_ONE://拍照照片
// Toast.makeText(mContext, "拍照完成", Toast.LENGTH_SHORT).show();
iv.setImageBitmap(BitmapFactory.decodeFile(path + fileName));
break;
default:
break;
}
}
}
好了,關於調用系統相機完成照片拍攝的知識,就為總結完畢,希望對大家有所幫助。源碼下載:http://pan.baidu.com/s/1sjZMUQx
android:padding和android:layout_margin的區別,
android:padding和android:layout_margin的區別,margin和padding是隔開元素中最常用的兩個屬性 ◆Padding屬性: Pad
Android 輪換頁面+TabHost 實例,androidtabhost
Android 輪換頁面+TabHost 實例,androidtabhost最終效果展示: 首先我們需要一個ViewPager控件,不過可以發現在左側的控
Android 幾種消息推送方案總結,android方案
Android 幾種消息推送方案總結,android方案轉載請注明出處:http://www.cnblogs.com/Joanna-Yan/p/6241354.html
谷歌官方SwipeRefreshLayout下拉刷新的用法。,swiperefreshlayout
谷歌官方SwipeRefreshLayout下拉刷新的用法。,swiperefreshlayout《Android SwipeRefreshLayout:谷歌官方SDK包