Android如何平移一个View

Android如何平移一个View

最近公司招聘Android开发同学,发现相当多的同学对此问题了解有限,因此列举几个平移的方法如下。

1 View方法 setTranslationX setTranslationY

Android3.0版本开始增加了一些用于动画的属性方法

例如:setTranslationX() setTranslationY() setRotation() setAlpha()

以下代码可以完成平移

TextView tv_test;
Button btn_test;
btn_test.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv_test.setTranslationY(500);
            }
        });

属性动画平移也是调用的setTranslation方法:

btn_test.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ObjectAnimator animator = ObjectAnimator.ofFloat(tv_test,"translationX",50.0f);
                animator.setDuration(100);
                animator.start();
            }
        });

2 View方法 layout

layout方法可以改变view的位置和大小,只做平移属于大材小用。

以下代码可以完成平移

btn_test.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv_test.layout(0,550,tv_test.getMeasuredWidth(),550+tv_test.getMeasuredHeight());
            }
        });

3 View方法 offsetLeftAndRight offsetTopAndBottom

以下代码可以完成平移

btn_test.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv_test.offsetLeftAndRight(100);
                tv_test.offsetTopAndBottom(100);
            }
        });

注意: 上述列举的方法,有的参数代表的是偏移量,有的参数代表的是坐标。

你可能感兴趣的:(android)