① android textureview 怎么设置不拉伸
使用SurfaceView和TextureView进行Camera开发的时候不可避免的会遇到一个问题:Camera 显示图像变形,图像被拉伸或者手机旋转一定角度(小于90度)图像变形。
有三种方法可以解决这个问题:
1. 自定义layout,将SurfaceView 和 TextureView addView到此layout,然后通过onLayou, onMeasue,控制SurfaceView及TextureView大小。
2. 使用SurfaceView和TextureView自带的setLayoutParams(params) 属性设置控件大小。
3. 通过TextureView 的setTransform(matrix)方法,控制Camera显示范围 (SurfaceView没有 setTransform 属性)
② 自家开发的AndroidApp里面自带的录像功能,录制的画面变形怎么解决
相机有自己支持的预览比例列表,是不是预览的view的宽高比和相机支持的比例不一样导致的?如果是的话不要固定那个view的大小,写成根据相机支持的preview大小自适应吧,然后多出来的部分给盖住。录出来的video也有支持的比例列表而且和preview的还不一样,自己设也可能会导致视频变形
③ Android如何判断手机摄像头是否倒置或旋转角度
摄像头没有装倒这一说,说明你们开发的程序还是有瑕疵的,都是程序设定的,就好比你拿着手机拍照,不管你怎么旋转手机,图像始终是朝下的,给你个提示:重力感应。
④ android Camera SurfaceView变形,为什么
1.预览尺寸固定
修改surfaceview的宽高,使其宽/高 = 预览尺寸的宽/高
之前我们的facesdk对应的demo都是指定预览尺寸480*640 宽/高=0.75,为了使预览图像时不变形,调整surfaceview的高(在宽度上填充父窗体,这样比较符合人的审美观点,但是问题就随之而来了,那就是高度如何定义?自定义布局文件)
用 “预览尺寸的宽高”比和“屏幕的宽”计算surfaceview的高,参考代码facesdk对应的track106demo.
这样回留下一条白边
2.根据屏幕的宽高比选择合适的预览尺寸。
⑤ Android摄像头非全屏预览,怎么保证图像不变形
用surfaceview可以设置预览窗口的大小和位置
然后用setpreviewsize设置摄像头图像的大小,大小和surfaceview一致就可以
⑥ android 怎么判断camera是否开启预览
杂家前文是在2012年的除夕之夜仓促完成,后来很多人指出了一些问题,琐事缠身一直没有进行升级。后来随着我自己的使用,越来越发现不出个升级版的demo是不行了。有时候就连我自己用这个demo测一些性能、功能点,用着都不顺手。当初代码是在linux下写的,弄到windows里下全是乱码。还要自己改几分钟才能改好。另外,很多人说不能正常预览,原因是我在布局里把Surfaceview的尺寸写死了。再有就是initCamera()的时候设参数失败,直接黑屏退出,原因也是我把预览尺寸和照片尺寸写死了。再有就是照片变形的问题。为此,今天出一个升级版的demo,争取全面适配所有机型。
上图为此次的代码结构,activity包里就是放CameraActivity,日后添加图库浏览功能再加GalleryActivity。为了使Camera的逻辑和界面的UI耦合度降至最低,封装了CameraInterface类,里面操作Camera的打开、预览、拍照、关闭。preview包里是自定义的Surfaceview。在util包里放着CamParaUtil是专门用来设置、打印Camera的PreviewSize、PictureSize、FocusMode的,并能根据Activity传进来的长宽比(主要是16:9 或 4:3两种尺寸)自动寻找适配的PreviewSize和PictureSize,消除变形。默认的是全屏,因为一些手机全屏时,屏幕的长宽比不是16:9或4:3所以在找尺寸时也是存在一些偏差的。其中有个值,就是判断两个float是否相等,这个参数比较关键,里面设的0.03.经我多个手机测试,这个参数是最合适的,否则的话有些奇葩手机得到的尺寸拍出照片变形。下面上源码:
⑦ android camera 预览变形 录制没
预览变形是不是设置预览尺寸有问题,或者是你预览尺寸是写死的,而不是跟随手机支持走的,你可以发下你代码,最近项目才做了视频录制,记得采纳
⑧ Android-android camera把预览做成正方形,请问如何实现的
您好,很高兴为您解答:
Parameters params = mCamera.getParameters();
List<Size> list = params.getSupportedPreviewSizes();
params.setPreviewSize(从list中选个正方形的Size【若有】, y);
mCamera.setParameters(params);
大概就是这样。前提是camera支持的list里边有正方形的预览。
⑨ Android Camera 预览为正方形
不支持的话可以根据比列适当的剪切一下控件surface的大小应该可以显示出1:1就是可能画面会小一点
⑩ android camera2 用surfaceview输出预览图像画面拉长
项目当中遇到调整摄像头位置需要全屏显示摄像头预览界面,过程中发现预览界面存在无法显示全,画面被拉伸的问题。surfaceview的宽高比可能与camera设置的宽高比不一致 ,经测试发现设置Camera 预览宽高可解决此问题(注意这里设置屏幕物理宽高不起作用,必须设置屏幕分辨率)
////通过Resources获取(无效)
// DisplayMetrics dm = getResources().getDisplayMetrics();
// heigth = dm.heightPixels;
// width = dm.widthPixels;
//获取屏幕的默认分辨率 设置预览界面长宽解决预览界面变形显示不全问题(有效)
Display display = getWindowManager().getDefaultDisplay();
int height = display.getWidth();
int width = display.getHeight();
Camera.Size preSize = CameraUtil.getCloselyPreSize( true , width, height, parameters.getSupportedPreviewSizes());
parameters.setPreviewSize(preSize.width, preSize.height);
Log.e(TAG + "摄像头尺寸前置" , "width" + preSize.width + "------" + "height" + preSize.height);
camera2.setParameters(parameters);
// 启动摄像头预览
camera2.startPreview();
System.out.println( "camera.startpreview" );