前段时间做个Camera手动触屏对焦的功能,FocusArea和MeteringArea设置为触屏位置,同时需要在该位置播放一个缩放动画ScaleAnimation。
缩放动画是通过ImageView去播放的,一开始通过ImageView:setX和setY去设置动画的位置,诡异的事就出现了,缩放动画会从地方慢慢移动到触屏位置!而不是一开始就在触屏位置播放。而如果ImageView只显示图片,就没问题。
后面换成setLayoutParams就没问题了。但是不知道原因,有大神可以解释下么
RelativeLayout.LayoutParams mIvFocusLayoutParams;
mIvFocusLayoutParams = (RelativeLayout.LayoutParams)mIvFocusAnimation.getLayoutParams();
int left = (int)event.getX() - mIvFocusAnimation.getWidth()/2;
int top = (int)event.getY() - mIvFocusAnimation.getHeight()/2;
mIvFocusLayoutParams.leftMargin = left;
mIvFocusLayoutParams.topMargin = top;
mIvFocusAnimation.setLayoutParams(mIvFocusLayoutParams);