Android移动View到指定位置的七种方式

一、layout(int l, int t, int r, int b)

layout(getLeft()+ 200,getTop()+ 400,getRight()+ 200,getBottom()+ 400);

移动后getLeft()值改变

二、offsetLeftAndRight(int offset)和offsetTopAndBottom(int offset)

offsetLeftAndRight(200);

offsetTopAndBottom(400);

移动后getLeft()值改变

三、修改LayoutParams

ViewGroup.MarginLayoutParams lp=(ViewGroup.MarginLayoutParams)getLayoutParams();

lp.leftMargin= getLeft()+ 200;

lp.topMargin= getTop()+ 400;

setLayoutParams(lp);

移动后getLeft()值不改变

四、scrollTo(int x, int y)和scrollBy(int x, int y)

((View)getParent()).scrollTo(-200,-400);

或者

((View)getParent()).scrollBy(-200,-400);

移动后getLeft()值不改变

五、setTranslationX(float translationX)和setTranslationY(float translationY)

setTranslationX(200);

setTranslationY(400)

移动后getLeft()值不改变

六、属性动画

AnimatorSet set= newAnimatorSet();

set.playTogether(ObjectAnimator.ofFloat(this,"translationX",200), ObjectAnimator.ofFloat(this,"translationY",400));

set.start();

移动后getLeft()值不改变

七、位移动画

TranslateAnimation anim= newTranslateAnimation(0,200,0,400);

anim.setFillAfter(true);

startAnimation(anim);

移动后getLeft值不改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值