camera2 (api2)打开预览过程(二)
发布日期:2021-05-19 23:22:19 浏览次数:22 分类:精选文章

本文共 3445 字,大约阅读时间需要 11 分钟。

NonNull TextView mPreviewSurfacebookContainer hideOriginal = null;private ImageView mPreviewImageView;privateView mPreviewSetting;private TextView mPreviewCornerRadius;privateView mPreviewTexture;

@Overridepublic void onConfigurationChanged() {    super.onConfigurationChanged();    if (mPreviewSurfacebookContainer != null) {        mPreviewSurfacebookContainer.setVisibility(GONE);    }    if (mPreviewTexture != null) {        mPreviewTexture.setVisibility(GONE);    }    mBackground.setVisibility(GONE);    mPreviewContainer.setVisibility(GONE);    mPreviewSetting.setVisibility(GONE);    mPreviewCornerRadius.setVisibility(GONE);    mPreviewImageView.setVisibility(GONE);    mPreviewSurfacebookContainer = null;    mPreviewTexture = null;}public void setPreviewTexture(final SurfaceTexture texture) {    if (mPreviewSurfacebookContainer == null) {        mPreviewSurfacebookContainer = new FrameLayout(context);        mPreviewSurfacebookContainer.setVisibility(View.VISIBLE);        mPreviewSurfacebookContainer.setPadding(0, 0, 0, 0);        mPreviewTexture = new SurfaceView(context);        mPreviewTexture.setFixedSize(480, 640);        mPreviewSurfacebookContainer.addView(mPreviewTexture);        // 添加触摸控件        mPreviewTexture.setOnTouchListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // Default action: zoom in                if (mCamera == null) {                    Toast.makeText(context, "没有初始化相机,无法预览和拍照", Toast.LENGTH_LONG).show();                    return;                }                if (mCameraState != null) {                    if (mCameraState.isPreviewStarted()) {                        mCamera.session.createpreview();                    }                }            }        });    }    mPreviewTexture.set(movieTexture);    mPreviewSurfacebookContainer.invalidate();}public void setPreviewContainer(final FrameLayout container) {    mPreviewSurfacebookContainer = container;}public void setPreviewSetting(final View setting) {    mPreviewSetting = setting;}public void setPreviewCornerRadius(final TextView cornerRadius) {    mPreviewCornerRadius = cornerRadius;}@Overridepublic void onRequestPermissionsResult(final int requestCode, final String[] permissions, final int[] grantResults) {    super.requestPermissionsResult(requestCode, permissions, grantResults);    mCameraHandler.post(new Runnable() {        @Override        public void run() {            if (requestCode == grantsAccessPermissionCode) {                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {                    //Cette permission est accordée, lungs à camera                    mCamera.startPreview();                }            }        }    });}public void setPreview(final Surface)previewSurface {    mPreviewSurface = previewSurface;    mCamera.setPreview(previewSurface);}public void startPreview() {    if (context == null || mPreviewSurfacebookContainer == null || mPreviewTexture == null) {        return;    }    if (!mCamera.startPreview()) {        Toast.makeText(context, "无法启动预览界面", Toast.LENGTH_LONG).show();        return;    }    mPreviewSurfacebookContainer.setVisibility(VISIBLE);    mPreviewSetting.setVisibility(VISIBLE);    mPreviewCornerRadius.setVisibility(VISIBLE);    mPreviewContainer.setVisibility(VISIBLE);    mPreviewImageView.setVisibility(VISIBLE);    mBackground.setVisibility(VISIBLE);}
上一篇:Gallery2 的数据加载及渲染
下一篇:压缩目录,排除多个子目录

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年05月16日 18时58分05秒