【问题标题】:migrate CWAC-camera to CWAC-cam2将 CWAC-camera 迁移到 CWAC-cam2
【发布时间】:2015-08-30 00:13:23
【问题描述】:

我已经用 CWAC-camera 实现了 cameraview (import com.commonsware.cwac.camera.CameraView),我想切换到使用 CWAC-Cam2,就像我做这个迁移一样,我不再找到 CameraHost 或相机主机提供者。因为我可以在我的活动界面中使用 CWAC-Cam2 的相机。

我做不到:'(

对不起,英语不好,谢谢!

所以我正在利用这一刻:

 import com.commonsware.cwac.camera.CameraHost;
import com.commonsware.cwac.camera.CameraHostProvider;
import com.commonsware.cwac.camera.CameraView;
import com.commonsware.cwac.camera.PictureTransaction;
import com.commonsware.cwac.camera.SimpleCameraHost;


public class MainActivity extends BaseActivity implements CameraHostProvider
        {


    @InjectView(R.id.cameraView)
    CameraView cameraView;


    @Override
    protected void onResume()
    {
        super.onResume();
        cameraView.onResume();
        //initCamera(varCamera,1);
    }



    @Override
    protected void onPause()
    {
             super.onPause();
             cameraView.onPause();
    }



            @Override
            public CameraHost getCameraHost() {

                return myCameraHost=new MyCameraHost(this);
            }

            class MyCameraHost extends SimpleCameraHost {

                private Camera.Size previewSize;

                public MyCameraHost(Context ctxt) {
                    super(ctxt);
                }

                @Override
                public boolean useFullBleedPreview() {
                    return true;
                }

                @Override
                public Camera.Size getPictureSize(PictureTransaction xact, Camera.Parameters parameters) {
                    return previewSize;
                }

                @Override
                public Camera.Parameters adjustPreviewParameters(Camera.Parameters parameters) {
                    Camera.Parameters parameters1 = super.adjustPreviewParameters(parameters);

                    previewSize = parameters1.getPreviewSize();
                    return parameters1;
                }

                @Override
                public void saveImage(PictureTransaction xact, final Bitmap bitmap) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            showTakenPicture(bitmap);
                        }
                    });
                }

                @Override
                public void saveImage(PictureTransaction xact, byte[] image) {
                    super.saveImage(xact, image);
                    photoPath = getPhotoPath();
                }
            }


            private void showTakenPicture(Bitmap bitmap) {
                vUpperPanel.showNext();
                vLowerPanel.showNext();
                newImage=bitmap;
                ivTakenPhoto.setImageBitmap(bitmap);
                updateState(STATE_SETUP_PHOTO);
            }

        }

【问题讨论】:

    标签: android commonsware-cwac


    【解决方案1】:

    我想改用 CWAC-Cam2

    这不切实际,尤其是在你的情况下。

    CWAC-Cam2 的设计初衷与我设想的 CWAC-Camera 一样:让相机 API 的使用变得更容易,而不必依赖不可靠的 ACTION_IMAGE_CAPTURE/ACTION_VIDEO_CAPTURE 实现。

    但是,CWAC-Cam2 的 API 完全不同。像您一样使用CameraView 的任何人都将获得更好的服务,直接使用相机 API。

    CWAC-Cam2 的 API 更接近于替代 ACTION_IMAGE_CAPTUREACTION_VIDEO_CAPTURE。如果您之前使用过CameraFragment也许您可以毫无问题地转移到 CWAC-Cam2,尽管我对此表示怀疑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多