1. 安卓开发 camera如何去掉preview size的全屏选项
AlertDialog dialog = builder.create(); dialog.setView(view); dialog.show(); WindowManager m = getWindowManager(); Display d = m.getDefaultDisplay(); //为获取屏幕宽、高 android.view.WindowManager.LayoutParams p = dialog.getWindo...
2. 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" );
3. android camera 横屏 竖屏
试试下面两种方法
1.修改manifest.xml,在需要横屏的Activity里加上android:screenOrientation="landscape"
2.在Activity里加上setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
4. Android Camera 预览为正方形
不支持的话可以根据比列适当的剪切一下控件surface的大小应该可以显示出1:1就是可能画面会小一点
5. android 相机 怎么改变相机预览界面大小
对于android自定义相机的开发,因为涉及很多不同的机型,以下代码设定某个特定的大小会使得程序死掉。
parameters.setPictureSize(640,640);
parameters.setPreviewSize(640,640)
所以,我们要适应其它的手机的话,就可以用:
List<Camera.Size> size1=parameters.getSupportedPictureSizes();
List<Camera.Size> size2=parameters.getSupportedPreviewSizes();
这样就可以得到相应手机支持的大小了,可以写一段小小的代码来获取自己想要的大小了。
6. 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.经我多个手机测试,这个参数是最合适的,否则的话有些奇葩手机得到的尺寸拍出照片变形。下面上源码:
7. android camera 预览帧数据是什么类型
mediaserver进程是Camera Service的容器进程,它会动态加载Camera HAL和Gralloc HAL。
视频数据帧首先必须从Camera驱动程序到达Camera硬件抽象层。
在Camera硬件抽象层,视频数据帧被从video capture buffer拷贝到gralloc buffer。
surfaceflinger进程作为显示服务器会动态加载HWComposer HAL和Gralloc HAL。
在HWComposer硬件抽象层,会把数据帧从gralloc buffer拷贝到video output buffer。
经过上述过程,Camera Sensor采集的图像最终通过LCDC HEO显示在显示屏上。
8. 请教关于android camera 预览显示方向的一个问题
必须要camera所在的activity设置为landscape,不然你横竖屏预览的时候预览画面时候景物角度会出问题,而且实物会被压扁,UI上你可以做成竖屏的效果
9. android中做的项目camera为空,但是surfaceview还能使用camera预览画面,这是怎么回事求大神解答
这不可能的,如果camera为空,你在初始化就已经出错了,程序根本跑不起来。你连surfaceholder都无法设置,又怎么可能可以看到预览画面。唯一的可能是camera再其它地方已经获取了reference,没有赋值给你看到到这个camera变量。你全局搜索下surfaceholder在哪里设置的,往回找camera,就知道怎么回事了
10. android camera2 上怎么让textureview全屏
选择壁纸时有一个小小的技巧,小编在此就和各位机油们分享一下这个小窍门。 目前安卓手机屏幕主流的分辨率大致有这么几种:320x240(高x宽)、480x320、800x480、854x480、960x540。安卓壁纸有这么一个特性:壁纸是会随着分屏的滑动而移动,所以壁纸的实际分辨率比屏幕分辨率要大,高度不变,但宽度却是屏幕的两倍! 屏幕分辨率为320x240的安卓手机,对应的壁纸分辨率为:320x480。 屏幕分辨率为480x320的安卓手机,对应的壁纸分辨率为:640x480。 屏幕分辨率为800x480的安卓手机,对应的壁纸分辨率为:960x800。 屏幕分辨率为800x480的安卓手机,对应的壁纸分辨率为:960x800。 屏幕分辨率为854x480的安卓手机,对应的壁纸分辨率为:960x854。 屏幕分辨率为960x540的安卓手机,对应的壁纸分辨率为:1080x960。