Android 开发照相功能实例详解
Android照相
在android中,照相功能系统已经提供,在app中可以直接使用。当手机从androidplay里面下载有照相功能的应用时,会判断手机是否支持。不支持,不给予下载。
照相有几个步骤:
1.声明权限
2.使用Camera照相
3.显示图片
1.声明权限
在manifest里面声明使用Camera:
2.使用Camera照相
在Activity中,调用Camera应用
privatevoiddispatchTakePictureIntent(intactionCode){
IntenttakePictureIntent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent,actionCode);
}
3.显示图片
在使用Camera照相成功之后,会返回回来,要显示图片就必须先获取图片,然后显示出来。
在onActivityResult方法中取得
protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
switch(requestCode){
Bundleextras=intent.getExtras();
BitmapmImageBitmap=(Bitmap)extras.get("data");
mImageView.setImageBitmap(mImageBitmap);
想要保存图片到制定目录,启动Camera应用时,需要指定文件
IntenttakePictureIntent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
Filef=null;
try{
f=setUpPhotoFile();
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(f));
}catch(IOExceptione){
e.printStackTrace();
f=null;
}
privateFilecreateImageFile()throwsIOException{
//Createanimagefilename
StringtimeStamp=newSimpleDateFormat("yyyyMMdd_HHmmss").format(newDate());
StringimageFileName="IMG_"+timeStamp+"_";
FilealbumF=getAlbumDir();
FileimageF=File.createTempFile(imageFileName,"jpg",albumF);
returnimageF;
}
privateFilesetUpPhotoFile()throwsIOException{
Filef=createImageFile();
mCurrentPhotoPath=f.getAbsolutePath();
returnf;
}
privateFilegetAlbumDir(){
FilestorageDir=null;
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
storageDir=mAlbumStorageDirFactory.getAlbumStorageDir(getAlbumName());
if(storageDir!=null){
if(!storageDir.mkdirs()){
if(!storageDir.exists()){
Log.d("CameraSample","failedtocreatedirectory");
returnnull;
}
}
}
}else{
Log.v(getString(R.string.app_name),"ExternalstorageisnotmountedREAD/WRITE.");
}
returnstorageDir;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!