前段時間做個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);