Pea*_*ace 0 android android-camera android-camera2 android-camerax
我正在尝试使用 CameraX Api 实现 TapToFocus 功能。我已经成功实现了它,但不知道如何在描述用户按下的位置的预览上画一个圆圈。
有多种方法可以围绕 上的点击位置绘制聚焦环并为其设置动画PreviewView,其中一些方法比其他方法更奇特。一种简单的方法是:
创建一个Drawable戒指,例如这样的东西。
ImageView将包含 的布局Drawable在 的顶部PreviewView,并最初将其隐藏。
<FrameLayout ...>
<androidx.camera.view.PreviewView
... />
<ImageView
android:id="@+id/focusRing"
android:src="@drawable/focus_ring"
android:visibility="invisible"
... />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
PreviewView。在触摸事件中,使用事件的坐标来显示其周围的环。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.
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1336 次 |
| 最近记录: |