我被SurfacevIEw和运行时问题困扰,
我需要在主要活动中使用SurfacevIEw显示摄像机预览,因此我在调用代码以显示摄像机预览时要求运行时权限.
但是我在授予摄像头许可后立即初始化SurfacevIEw,那时surfaceCreated()回调从不调用,并且许可也被授予(我已经从“设置”中进行了检查).
一旦我杀死了该应用程序并再次打开,它在此之后将非常完美.
这是我的诱人代码,
在MainActivity中
@OverrIDepublic voID onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { initCameraPrevIEw();}
在initCameraPrevIEw()方法中,
public voID initCameraPrevIEw(){ StartCameraPrevIEw prevIEw = new StartCameraPrevIEw(context, surfaceVIEw); prevIEw.onCreate();}
我在课堂上为SurfaceVIEw创建了,
StartCameraPrevIEw.java
public StartCameraPrevIEw(Context context, SurfaceVIEw surfaceVIEw) { this.mContext = context; this.surfaceVIEw = surfaceVIEw;}public voID onCreate() { if (checkCameraHarDWare()) { mCamera = getCameraInstance(); // configure prevIEw prevIEwHolder = surfaceVIEw.getHolder(); prevIEwHolder.addCallback(surfaceCallback); prevIEwHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); }}
对不起,我不能分享很多代码.
所以我刚刚添加了初始化代码.
有谁遇到过这个问题,或者有人知道任何解决方案吗?
请帮忙
感谢在广告中.
解决方法:
最初尝试将SurfaceVIEw的可见性设置为INVISIBLE,并在授予权限后将其设置为VISIBLE.这样,在许可结果之后将创建绘图图面.希望这可以帮助.
总结以上是内存溢出为你收集整理的要求运行时权限后,Surfaceview不会立即创建全部内容,希望文章能够帮你解决要求运行时权限后,Surfaceview不会立即创建所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)