override removeView

pull/421/head
Giacomo Randazzo 6 years ago
parent e74c3c42cc
commit 747cdc6285
  1. 13
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java
  2. 13
      cameraview/src/main/java/com/otaliastudios/cameraview/OverlayLayoutManager.java

@ -307,6 +307,19 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
} }
} }
@Override
public void removeView(View child) {
if (child.getLayoutParams() instanceof OverlayLayoutParams) {
if (((OverlayLayoutParams) child.getLayoutParams()).drawInPreview) {
mOverlayLayoutManager.removeView(child);
} else {
mOverlayLayoutManagerBelow.removeView(child);
}
} else {
super.removeView(child);
}
}
@Override @Override
public LayoutParams generateLayoutParams(AttributeSet attributeSet) { public LayoutParams generateLayoutParams(AttributeSet attributeSet) {
OverlayLayoutParams toBeChecked = new OverlayLayoutParams(this.getContext(), attributeSet); OverlayLayoutParams toBeChecked = new OverlayLayoutParams(this.getContext(), attributeSet);

@ -66,6 +66,19 @@ class OverlayLayoutManager extends FrameLayout implements SurfaceDrawer {
} }
} }
@Override
public void removeView(View child) {
// params must be instance of OverlayLayoutParams
if (!(child.getLayoutParams() instanceof CameraView.OverlayLayoutParams)) {
return;
}
OverlayType viewOverlayType = new OverlayType((CameraView.OverlayLayoutParams) child.getLayoutParams());
if (mLayouts.containsKey(viewOverlayType)) {
mLayouts.get(viewOverlayType).removeView(child);
}
}
@Override @Override
public void drawOnSurfaceForPictureSnapshot(Canvas surfaceCanvas) { public void drawOnSurfaceForPictureSnapshot(Canvas surfaceCanvas) {
surfaceCanvas.save(); surfaceCanvas.save();

Loading…
Cancel
Save