I am trying to implement TapToFocus feature using the CameraX Api .I have implemented it successfully but not able to know how to draw a circle on the preview describing the Location pressed by the user .
Asked
Active
Viewed 1,170 times
0
-
This [response](https://b.corp.google.com/issues/160269606#comment10) from the CameraX issue tracker might help you. – Husayn Hakeem Oct 22 '20 at 19:52
-
1I am not able to find how to sign in above at the site . There is no create account method there . Please Guide . – Peace Oct 28 '20 at 14:57
1 Answers
6
The are many ways to draw and animate a focus ring around a tap position on PreviewView
, some fancier than others. One simple way of doing so is to:
Create a
Drawable
of the ring, something like this for instance.Layout an
ImageView
containing theDrawable
on top ofPreviewView
, and initially hide it.
<FrameLayout ...>
<androidx.camera.view.PreviewView
... />
<ImageView
android:id="@+id/focusRing"
android:src="@drawable/focus_ring"
android:visibility="invisible"
... />
</FrameLayout>
- Set up a touch listener on
PreviewView
. On a touch event, use the event's coordinates to show the ring around it.
private void animateFocusRing(float x, float y) {
ImageView focusRing = findViewById(R.id.focusRing);
// Move the focus ring so that its center is at the tap location (x, y)
float width = focusRing.getWidth();
float height = focusRing.getHeight();
focusRing.setX(x - width / 2);
focusRing.setY(y - height / 2);
// Show focus ring
focusRing.setVisibility(View.VISIBLE);
focusRing.setAlpha(1F);
// Animate the focus ring to disappear
focusRing.animate()
.setStartDelay(500)
.setDuration(300)
.alpha(0F)
.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationEnd(Animator animator) {
focusRing.setVisibility(View.INVISIBLE);
}
// The rest of AnimatorListener's methods.
});
}

Husayn Hakeem
- 4,184
- 1
- 16
- 31
-
Thank-You it helped . Have seen your work on the above topic a lot. Appreciate your efforts . If possible please share some documents which would provide me much knowledge on the CameraX library . Thank-You again – Peace Oct 31 '20 at 08:05
-