activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#000000" >
<TextView
android:id="@+id/tv_x"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Hello World !"
android:textColor="#ffffff"
android:layout_marginBottom="100dp"
android:textSize="20sp" />
<TextView
android:id="@+id/tv_y"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Hello World !"
android:textColor="#ffffff"
android:layout_marginBottom="100dp"
android:textSize="20sp" />
<TextView
android:id="@+id/tv_rotation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Hello World !"
android:layout_marginBottom="100dp"
android:textColor="#ffffff"
android:textSize="20sp" />
</LinearLayout>
MainActivity
package com.cn.customview;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
import com.example.customview.R;
@SuppressLint("NewApi")
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
TextView tv_x = (TextView) findViewById(R.id.tv_x);
TextView tv_y = (TextView) findViewById(R.id.tv_y);
TextView tv_rotation = (TextView) findViewById(R.id.tv_rotation);
/**
* x轴方向平移路径是 0-->100-->0-->100-->0-->100-->0-->100
*/
ObjectAnimator animatorX = ObjectAnimator.ofFloat(tv_x, "x", 0, 100, 0,
100, 0, 100, 0, 100);
/**
* y轴方向平移路径是 200-->300-->200-->300-->200-->300-->200-->300
*/
ObjectAnimator animatorY = ObjectAnimator.ofFloat(tv_y, "y", 200, 300,
200, 300, 200, 300, 200, 300);
/**
* 旋转的流程是 0度-->360度-->0度-->360度-->0度-->360度-->0度-->360度
*/
ObjectAnimator animatorRotation = ObjectAnimator.ofFloat(tv_rotation,
"rotation", 0, 360, 0, 360, 0, 360, 0, 360);
animatorX.setDuration(2000);
animatorX.setRepeatCount(ValueAnimator.INFINITE);
animatorRotation.setDuration(2000);
animatorRotation.setRepeatCount(ValueAnimator.INFINITE);
animatorY.setDuration(2000);
animatorY.setRepeatCount(ValueAnimator.INFINITE);
animatorX.start();
animatorY.start();
animatorRotation.start();
}
}
运行效果: