
对于Android 60之前,想要使用系统的相机进行拍照,那么只要在AndroidManifedtxml中进行添加相应的权限,主要是两个:
<uses-permission android:name="androidpermissionWRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="androidpermissionCAMERA"/>
@Override
public boolean onTouchEvent(MotionEvent event) {
// 触摸屏幕自动对焦
if (eventgetAction() == MotionEventACTION_DOWN) {
mCameraautoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
return superonTouchEvent(event);
}//这个是activity的基本事件,在这个事件中写入,对焦就好了。主要是对焦 *** 作
//参考SDK中的API,获取相机的参数:
CameraParameters parameters = cameragetParameters();
//获取预览的各种分辨率
List<Size> supportedPreviewSizes = parametersgetSupportedPreviewSizes();
//获取摄像头支持的各种分辨率
List<Size> supportedPictureSizes = parametersgetSupportedPictureSizes();
实例:
// 获取照相机参数,设置需要的参数,其余缺省
Camera camera = Cameraopen();
CameraParameters parameters = cameragetParameters();
// 设置照片格式
parameterssetPictureFormat(PixelFormatJPEG);
// 设置预浏尺寸,注意要在摄像头支持的范围内选择
parameterssetPreviewSize(WIDTH, HEIGHT);
// 设置照片分辨率,注意要在摄像头支持的范围内选择
parameterssetPictureSize(WIDTH, HEIGHT);
// 设置照相机参数
camerasetParameters(parameters);
// 开始拍照
camerastartPreview();
昨天需要添加照片水印的功能,google后找到了博客大v 水寒 的文章 对我帮助很大 >
早期的手机带有红外,通过发射红外可以测出来被拍摄物体和手机之间的距离。以前的相机的聚焦算法用的是物理算法也就是指的这。现代的大多通过软件聚焦,比如计算出人脸核心区域以此聚焦。但这些算法都是相机厂家的机密哦!!!但android手机里既然提供这个api理论上是可以获得距离的,只能说是个bug了!
这是个Bug。stackoverflow上的人也提出来了。所以目前想用单个相机测距是不行的。除非是结合图像识别和位移来测算。
public class TestCameraActivity extends Activity implements OnClickListener{ private Uri mOutPutFileUri;
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
Button takePiCButton = (Button) thisfindViewById(Ridbutton1);
takePiCButtonsetOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (vgetId()) {
case Ridbutton1:
saveFullImage();
break;
default:
break;
}
}
private void saveFullImage(){
Intent intent = new Intent(MediaStoreACTION_IMAGE_CAPTURE);
//文件夹aaaa
String path = EnvironmentgetExternalStorageDirectory()toString()+"/aaaa";
File path1 = new File(path);
if(!path1exists()){
path1mkdirs();
}
File file = new File(path1,SystemcurrentTimeMillis()+"jpg");
mOutPutFileUri = UrifromFile(file);
intentputExtra(MediaStoreEXTRA_OUTPUT, mOutPutFileUri);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
superonActivityResult(requestCode, resultCode, data);
if(requestCode == 1){
Uri imageUri = null;
if(data != null){
if(datahasExtra("data")){
Bitmap thunbnail = datagetParcelableExtra("data");
//处理缩略图
}
}else{
//处理mOutPutFileUri中的完整图像
}
}
}
}
Uri
uri
=
datagetData();
这样是可以得到相片的位置的,但是比如使用camera360就不能再拍完照片后不能返回到我的界面,一直卡在camera360那个位置
以上就是关于android 相机的拍照权限有哪些全部的内容,包括:android 相机的拍照权限有哪些、Android 开发调用相机拍照如何获取清晰照片、android 如何获取相机分辨率等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)