我已经用CWAC-camera实现了cameraview(导入com.commonsware.cwac.camera.CameraView),我想切换到使用CWAC-Cam2,就像我做这个迁移一样,我不再找到CameraHost或者CameraHostProvider。因为我可以在我的活动中使用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);
}
}
答案 0 :(得分:0)
我想切换到使用CWAC-Cam2
这是不切实际的,特别是在你的情况下。
CWAC-Cam2旨在填补我所设想的CWAC-Camera将填充的相同角色:使相机API更容易使用,而不必依赖于不可靠的ACTION_IMAGE_CAPTURE
/ ACTION_VIDEO_CAPTURE
实现
但是,CWAC-Cam2的API 完全不同。任何使用过CameraView
的人都可以直接使用相机API。
CWAC-Cam2的API更接近ACTION_IMAGE_CAPTURE
和ACTION_VIDEO_CAPTURE
的替代品。如果您以前曾使用CameraFragment
,也许,您可以在没有太多问题的情况下转移到CWAC-Cam2,但我对此表示怀疑。