【移動應用開發技術】Android中怎么調用攝像頭拍照_第1頁
【移動應用開發技術】Android中怎么調用攝像頭拍照_第2頁
【移動應用開發技術】Android中怎么調用攝像頭拍照_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

【移動應用開發技術】Android中怎么調用攝像頭拍照

本篇文章給大家分享的是有關Android中怎么調用攝像頭拍照,在下覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著在下一起來看看吧。第一步,獲取權限if

(ContextCompat.checkSelfPermission(this,

Manifest.permission.WRITE_EXTERNAL_STORAGE)!=

PackageManager.PERMISSION_GRANTED)

{

//如果沒有權限,動態申請授權

ActivityCompat.requestPermissions(this,

new

String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},

2);

}第二步,創建用于保存的文件,并且用intent調用系統攝像頭拍照程序

Button

btTakePhoto

=

(Button)

findViewById(R.id.btTakePhoto);

btTakePhoto.setOnClickListener(new

View.OnClickListener()

{

@Override

public

void

onClick(View

v)

{

try

{

File

sdcard

=

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

picFile

=

new

File(sdcard,

System.currentTimeMillis()

+

".jpg");

picFile.createNewFile();

Log.e("UseSystemCameraApp",

picFile.getName()

+

"創建成功");

}

catch

(IOException

e)

{

e.printStackTrace();

}

Intent

intent

=

new

Intent(MediaStore.ACTION_IMAGE_CAPTURE);

intent.putExtra(MediaStore.EXTRA_OUTPUT,

Uri.fromFile(picFile));

startActivityForResult(intent,

1);

}

});

}第三步,把照片顯示出來

protected

void

onActivityResult(int

requestCode,

int

resultCode,

Intent

data)

{

if

(requestCode

==

1)

{

ImageView

iv

=

(ImageView)

findViewById(R.id.ivShow);

iv.setImageURI(Uri.fromFile(picFile));

}

super.onActivityResult(requestCode,

resultCode,

data);

}同樣也需要onRequestPermissionsResult

@Override

public

void

onRequestPermissionsResult(int

requestCode,

@NonNull

String[]

permissions,

@NonNull

int[]

grantResults)

{

super.onRequestPermissionsResult(requestCode,

permissions,

grantResults);

if

(requestCode

==

1)

{

if

(!(grantResults.length

>

0

&&

grantResults[0]

==

PackageManager.PERMISSION_GRANTED))

{

Toast.makeText(this,

"未獲得SD卡訪問權限",

Toast.LENGTH_LONG).show();

finish();

}

}

}到這里似乎就已經完成要做的步驟了,但其實還有最后一步,因為我們使用的是intent.putExtra,這會導致當前activity的URI會暴露給下一個activity,如果不處理,就會報錯。所以在onCreate中要使用StrictMode.VmPolicy.Builder進行監控

StrictMode.VmPolicy.Builder

builder

=

new

StrictMode.VmPolicy.Builder();

StrictMode.setVmPolicy(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論