lei
* @Description: 自定义小球
*/
public class Cricleview extends View {
private Paint mpaint;
public Cricleview(Context context) {
super(context);
init(context);
}
public Cricleview(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
private void init(Context context) {
mpaint = new Paint();
//颜色
mpaint.setColor(Color.GREEN);
mpaint.setAntiAlias(true);
//粗细
mpaint.setStrokeWidth(5);
}
//画笔
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(50,50,50,mpaint);
}
//动态的改变小球的颜色
public void setColor(int color){
mpaint.setColor(color);
//刷新
invalidate();
}
}
public class MainActivity extends AppCompatActivity {
private Cricleview cricleview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//小球的id
cricleview = findViewById(R.id.cricl);
//宽高
int width = getWindowManager().getDefaultDisplay().getWidth();
int height = getWindowManager().getDefaultDisplay().getHeight();
//右下角
ObjectAnimator translationX = ObjectAnimator.ofFloat(cricleview, "translationX", 0,width-100);
ObjectAnimator translationY = ObjectAnimator.ofFloat(cricleview, "translationY", 0,height-100);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.setDuration(5000);
animatorSet.play(translationX).with(translationY);
animatorSet.start();
animatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
//跳转登录
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
//改变颜色
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
cricleview.setColor(Color.RED);
}
},1000);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
cricleview.setColor(Color.BLACK);
}
},1500);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
cricleview.setColor(Color.BLUE);
}
},2000);
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<bw.com.ljm.week3.Cricleview
android:id="@+id/cricl"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</RelativeLayout>