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; }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!