如何在动画后获得新的视角位置呢?
if(animationCompeleted == 1)
{
return;
}
if(animationCounter != 0)
{
this.width = this.width + 1.f;
this.heigh = this.heigh + 1.f;
}
final ScaleAnimation scale = new ScaleAnimation(this.width, this.width + 1.0f, this.heigh, this.heigh + 1.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 1.0f);
scale.setDuration(1000);
scale.setFillAfter(true);
scale.setFillEnabled(true);
scale.setAnimationListener(new Animation.AnimationListener()
{
@Override
public void onAnimationStart(Animation arg0)
{
animationCompeleted = 1;
animationCounter++;
}
@Override
public void onAnimationRepeat(Animation arg0)
{
animationCompeleted = 2;
}
@Override
public void onAnimationEnd(Animation arg0)
{
animationCompeleted = 2;
//I want to get new position of imageView for comparing with another view(detection going-on it)
}
});
imageView.startAnimation(scale);
我想知道我的imageView何时接近另一个视图
我怎么检查呢?
如何在动画后获得新的X和Y或高度和宽度?
我想让它们进入onAnimationEnd,但它是静态值,它在动画结束后不会改变..
对不起语法
答案 0 :(得分:3)
尝试getLocationOnScreen方法。
int[] locationOnScreent = new int[2];
yourView.getLocationOnScreen(locationOnScreent);
// locationOnScreent[0] = x
// locationOnScreent[1] = y
答案 1 :(得分:0)
要获取视图的维度,请使用View.getLayoutParams().height
和View.getLayoutParams().width
要获得位置,必须将LayoutParams转换为MarginLayoutParams并获取leftMargin / topMargin / rightMargin / bottomMargin
答案 2 :(得分:0)
这里的主要困惑是,你已经动画了视图的代表,而不是视图本身。 因此,动画后视图的坐标永远不会改变。
此外,setFillAfter(true)参数不会干扰进程。 setFillAfter(true)仍然只影响视图的代表。