Overlay-Bild auf cameraPreview

EINFÜHRUNG

Habe ich eine benutzerdefinierte Kamera-app, wo ich zeigen Kamera-Vorschau über eine benutzerdefinierte surfaceView. Was ich implementieren müssen, ist, erstellen Sie ein overlay-Bild aus einem Bild-Ressource angezeigt werden soll, über die cameraPreview, wie ein filter.

Ich bin schon auf der Suche über das in anderen Themen, aber ich habe nicht gefunden, etwas, anwendbar zu meiner app.

ANSATZ

Ich habe versucht, das Bild als bitamp, mit onDraw () - Methode und andere Möglichkeiten, aber die habe ich noch nicht erreicht, um zu zeigen, das Bild.

Dies ist mein code:

CODE

public class CameraActivity extends Activity implements PictureCallback {

    private Button btnPhoto;
    CameraPreview cameraPreview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        cameraPreview = (CameraPreview) findViewById(R.id.camera_preview);
        btnPhoto = (Button)findViewById(R.id.buttonTakePhoto);

        btnPhoto.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                takePhoto();
            }
        });
    }

    public void takePhoto() {
        cameraPreview.getCamera().takePicture(null, null, this);
    }
    //...
}

_

public class CameraPreview extends FrameLayout implements SurfaceHolder.Callback {

    private SurfaceView surfaceView;
    private Camera camera;

    public CameraPreview(Context context, AttributeSet attrs) {
        super(context, attrs);

        createCamera();

        surfaceView = new SurfaceView(context);
        addView(surfaceView);

        SurfaceHolder holder = surfaceView.getHolder();
        holder.addCallback(this);

        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        holder.setKeepScreenOn(true);
    }

    private void createCamera() {
        //...
            try {
                this.camera = Camera.open(activeCameraId);
            } catch (Exception e) {
                return;
            }
        //...
    }

    public Camera getCamera() {
        return camera;
    }


    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        //...
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        //...
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
        //...
    }
}

_

<com.uax.cameratakephoto.CameraPreview
    android:id="@+id/camera_preview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerInParent="true" />

<Button  //THIS IS THE BUTTON TO TAKE THE PHOTO
    android:id="@+id/buttonTakePhoto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:background="@android:drawable/ic_menu_camera" />

<ImageView  //THIS IS A SMALL PREVIEW OF THE LAST PHOTO TAKEN
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true" />

InformationsquelleAutor masmic | 2014-03-17

Schreibe einen Kommentar