Tag: surfaceview

纵向模式下的相机横向预览

我有一个对话框设计,相机预览应该在纵向模式下的风景(见图片)。 我通过getOptimalPreviewSize()正确选择预览大小,当我不使用setDisplayOrientation(90)时,我得到这个: 当我使用setDisplayOrientation(90)时,我得到这个: 有没有人有任何想法如何解决它? Android可以做这样的事情吗? 答案(感谢Eddy Talvala): 由于在xml中的凸轮视图处于水平状态时无法处理纵向整个凸轮图片,因此应裁剪。 我决定水平放置,剪下底部的所有东西: | | | _________ | _____ || || | | || || | ^-^ | || ______ || | \_/ | || | ^-^ ||| | | | || |_\_/_ ||| |__|__| || image || sensor || || || || ||_________|| || < O [] || […]

SurfaceView如何重新创建,如果已经被破坏

我通过SurfaceView创建了一个相机,但是当我按回家并返回到活动。 SurfaceView没有显示任何东西。 它没有调用surfaceCreated(SurfaceHolder holder) 当我回到活动。 我该怎么办? 这里是我的代码写的kotlin类`MyCameraView:SurfaceView,SurfaceHolder.Callback,Camera.PreviewCallback,Camera.FaceDetectionListener { private lateinit var mCamera : Camera var sizes : List<Camera.Size>? = null constructor( ctx : Context, attrs : AttributeSet?) : super(ctx,attrs){ holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); holder.addCallback(this) } constructor(ctx : Context):this(ctx,null){ } override fun surfaceChanged(p0: SurfaceHolder?, format: Int, width: Int, height: Int) { Log.e("MyCameraView","CHANGE ") val sizes = mCamera.parameters.supportedPreviewSizes val size […]