Myapp接口
Myapp代码注意在清单文件中添加name:
package com.example.day10;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class MyView extends View {
private Paint paint;//画笔
private String titless;//用来记录绘制时间角度
private int progress;//用来记录时间
public MyView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initPaint();
}
private void initPaint(){
paint=new Paint();
paint.setColor(Color.RED);
paint.setStrokeWidth(5);//设置绘制线的宽度
paint.setAntiAlias(true);//设置抗锯齿
paint.setStyle(Paint.Style.STROKE);//Flll实心,STROKE空心;
paint.setTextSize(30);//设置大小
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//绘制范围,距离左上10,边长是100的正方形
RectF rectF = new RectF(10, 10, 110, 100);
canvas.drawArc(rectF,270,progress,false,paint);
canvas.drawText(titless,50,65,paint);
}
public void start(int time){
ValueAnimator valueAnimator=ValueAnimator.ofArgb(0,360);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(@NonNull ValueAnimator animation) {
progress=(int)valueAnimator.getAnimatedValue();
invalidate();//刷新
}
});
valueAnimator.setDuration(time*1000);//动画持续的时长
valueAnimator.start();//开启
ValueAnimator valueAnimatorText = ValueAnimator.ofArgb(time, 0);
valueAnimatorText.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(@NonNull ValueAnimator animation) {
titless=String.valueOf(valueAnimatorText.getAnimatedValue());
invalidate();
}
});
valueAnimatorText.setDuration(time*1000);
valueAnimatorText.start();
valueAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
//接口调用
onanimEnd.animatnd();
}
});
}
//创建接口
interface OnanimEnd{
void animatnd();
}
public void setOnanimEnd(OnanimEnd onanimEnd) {
this.onanimEnd = onanimEnd;
}
OnanimEnd onanimEnd;
}
activity布局:
activity主页面:
activity主页面代码:
package com.example.day10;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity2 extends AppCompatActivity {
private MyView myview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
//设置时间
myview.start(5);
//设置平移消失效果
ObjectAnimator translationX= ObjectAnimator.ofFloat(myview,"translationX",0,180,20,0,-600);
translationX.setDuration(3000);
translationX.start();
myview.setOnanimEnd(new MyView.OnanimEnd() {
@Override
public void animatnd() {
//跳转
Intent integer = new Intent(MainActivity2.this, MainActivity.class);
startActivity(integer);
}
});
}
private void initView() {
myview = (MyView) findViewById(R.id.myview);
}
}