Android 在CameraX中的预览中绘制圆,描述TapToFocus
我正在尝试使用CameraX Api实现TapToFocus功能。我已经成功实现了它,但不知道如何在预览上画一个圆圈来描述用户按下的位置Android 在CameraX中的预览中绘制圆,描述TapToFocus,android,android-camera,android-camera2,android-camerax,Android,Android Camera,Android Camera2,Android Camerax,我正在尝试使用CameraX Api实现TapToFocus功能。我已经成功实现了它,但不知道如何在预览上画一个圆圈来描述用户按下的位置 在预览视图中,围绕轻触位置绘制聚焦环并设置其动画的方法有很多种,有些方法比其他方法更为奇特。一种简单的方法是: 创建戒指的可绘制的,例如 在预览视图的顶部布置一个包含可绘制的的图像视图,并最初将其隐藏 来自CameraX问题跟踪器的这篇文章可能会对您有所帮助。我无法找到如何在上面的网站上登录。那里没有创建帐户的方法。请导游。谢谢你的帮助。我经常看到你在上述
在
预览视图
中,围绕轻触位置绘制聚焦环并设置其动画的方法有很多种,有些方法比其他方法更为奇特。一种简单的方法是:
可绘制的,例如
预览视图
的顶部布置一个包含可绘制的的图像视图
,并最初将其隐藏
来自CameraX问题跟踪器的这篇文章可能会对您有所帮助。我无法找到如何在上面的网站上登录。那里没有创建帐户的方法。请导游。谢谢你的帮助。我经常看到你在上述主题上的工作。感谢你的努力。如果可能的话,请分享一些文档,这些文档将为我提供有关CameraX库的更多知识。再次感谢你
<FrameLayout ...>
<androidx.camera.view.PreviewView
... />
<ImageView
android:id="@+id/focusRing"
android:src="@drawable/focus_ring"
android:visibility="invisible"
... />
</FrameLayout>
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.
});
}