pull/421/head
Giacomo Randazzo 7 years ago
parent d0c4100088
commit 9f58d642b7
  1. 8
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java
  2. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/OverlayLayout.java
  3. 6
      demo/src/main/java/com/otaliastudios/cameraview/demo/CameraActivity.java
  4. 1
      demo/src/main/res/layout/activity_camera.xml

@ -1711,6 +1711,14 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
return mCameraController.getDisableOverlayFor(); return mCameraController.getDisableOverlayFor();
} }
/**
* Force the overlay to be redrawn.
*/
public void invalidateOverlay() {
if (mPreviewOverlayLayout != null) {
mPreviewOverlayLayout.postInvalidate();
}
}
//endregion //endregion
//region Callbacks and dispatching //region Callbacks and dispatching

@ -4,6 +4,7 @@ import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.Paint; import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.Surface; import android.view.Surface;
import android.view.View; import android.view.View;
@ -36,6 +37,7 @@ public class OverlayLayout extends FrameLayout {
float xScale = surfaceCanvas.getWidth() / (float) canvas.getWidth(); float xScale = surfaceCanvas.getWidth() / (float) canvas.getWidth();
surfaceCanvas.scale(xScale, xScale); surfaceCanvas.scale(xScale, xScale);
surfaceCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
super.draw(surfaceCanvas); super.draw(surfaceCanvas);
outputSurface.unlockCanvasAndPost(surfaceCanvas); outputSurface.unlockCanvasAndPost(surfaceCanvas);

@ -10,6 +10,7 @@ import androidx.appcompat.app.AppCompatActivity;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewTreeObserver; import android.view.ViewTreeObserver;
import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.otaliastudios.cameraview.CameraException; import com.otaliastudios.cameraview.CameraException;
@ -180,12 +181,17 @@ public class CameraActivity extends AppCompatActivity implements View.OnClickLis
private void toggleCamera() { private void toggleCamera() {
if (camera.isTakingPicture() || camera.isTakingVideo()) return; if (camera.isTakingPicture() || camera.isTakingVideo()) return;
TextView watermarkTitle = findViewById(R.id.watermark_title);
switch (camera.toggleFacing()) { switch (camera.toggleFacing()) {
case BACK: case BACK:
watermarkTitle.setText("Back facing");
camera.invalidateOverlay();
message("Switched to back camera!", false); message("Switched to back camera!", false);
break; break;
case FRONT: case FRONT:
watermarkTitle.setText("Front facing");
camera.invalidateOverlay();
message("Switched to front camera!", false); message("Switched to front camera!", false);
break; break;
} }

@ -46,6 +46,7 @@
android:contentDescription="Watermark" /> android:contentDescription="Watermark" />
<TextView <TextView
android:id="@+id/watermark_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="CameraView" android:text="CameraView"

Loading…
Cancel
Save