gpt4 book ai didi

android - 在翻译动画中是否可以获取 ImageView 的实时坐标?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:51 26 4
gpt4 key购买 nike

我在执行翻译动画的 ImageView 中有一个子弹图像。

我需要显示实时坐标以实时显示它与目标的距离。

ImageView myimage = (ImageView)findViewById(R.id.myimage);    
Animation animation = new TranslateAnimation(100, 200, 300, 400);
animation.setDuration(1000);
myimage.startAnimation(animation);
animation.setRepeatCount(Animation.INFINITE);

是否可以在执行 TranslateAnimation 时获取图像的实时 x 和 y 坐标?

如果不能使用 TranslateAnimation,是否有任何其他方法可以在运动时给出图像的实时坐标?

我试过了-

int x = myimage.getLeft();
int y = myimage.getTop();

int[] firstPosition = new int[2];
myimage.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY);
myimage.getLocationOnScreen(firstPosition);
int x = firstPosition[0];
int y = firstPosition[1];

但在这两种方式中,它都给出了 ImageView 的初始静态坐标。

最佳答案

这是一个基于 user3249477 和 Vikram 所说的完整示例:

    final TextView positionTextView = (TextView)findViewById(R.id.positionTextView);
ImageView myimage = (ImageView)findViewById(R.id.imageView);

ObjectAnimator translateXAnimation= ObjectAnimator.ofFloat(myimage, "translationX", 0f, 100f);
ObjectAnimator translateYAnimation= ObjectAnimator.ofFloat(myimage, "translationY", 0f, 100f);
translateXAnimation.setRepeatCount(ValueAnimator.INFINITE);
translateYAnimation.setRepeatCount(ValueAnimator.INFINITE);

AnimatorSet set = new AnimatorSet();
set.setDuration(1000);
set.playTogether(translateXAnimation, translateYAnimation);
set.start();

translateXAnimation.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
imageXPosition = (Float)animation.getAnimatedValue();
}
});

translateYAnimation.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
imageYPosition = (Float)animation.getAnimatedValue();
String position = String.format("X:%d Y:%d", (int)imageXPosition, (int)imageYPosition);
positionTextView.setText(position);
}
});

关于android - 在翻译动画中是否可以获取 ImageView 的实时坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28537655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com