通用代码内容:
1、在res-values-styles文件中,添加样式:
2、 在res-drawable文件夹下创建文件 shape_rectangle_whitesolid_10dpcorners.xml。
俩种样式各自代码:
样式一:
样式一
Java类代码:
public class LoadingDataDialog1 extends Dialog {
private final String TAG = "LoadingDataDialog";
private TextView tvOne;
private TextView tvTwo;
private TextView tvThree;
public LoadingDataDialog1(@NonNull Context context) {
super(context, R.style.MyDialog);
}
private boolean isAnimate = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_loading1);
setCanceledOnTouchOutside(false);
tvOne = findViewById(R.id.tv_dialog_loading_one);
tvTwo = findViewById(R.id.tv_dialog_loading_two);
tvThree = findViewById(R.id.tv_dialog_loading_three);
startAnimate(tvOne);
startAnimate(tvTwo);
startAnimate(tvThree);
}
private void startAnimate(final View view) {
isAnimate = true;
final TranslateAnimation animateStart = new TranslateAnimation(
0, // fromXDelta
0, // toXDelta
-20, // fromYDelta
20); // toYDelta
animateStart.setDuration(500);
animateStart.setFillAfter(true);
final TranslateAnimation animateEnd = new TranslateAnimation(
0, // fromXDelta
0, // toXDelta
20, // fromYDelta
-20); // toYDelta
animateEnd.setDuration(500);
animateEnd.setFillAfter(true);
animateStart.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Log.e(TAG, "走到了 动画 开始");
}
@Override
public void onAnimationEnd(Animation animation) {
Log.e(TAG, "走到了 动画 结束");
if (isAnimate) {
view.startAnimation(animateEnd);
} else {
animateEnd.reset();
}
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
animateEnd.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
if (isAnimate) {
view.startAnimation(animateStart);
} else {
animateStart.reset();
}
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
view.startAnimation(animateStart);
}
@Override
public void dismiss() {
isAnimate = false;
clearAnimate(tvOne);
clearAnimate(tvTwo);
clearAnimate(tvThree);
super.dismiss();
}
private void clearAnimate(TextView textView) {
Animation animation = textView.getAnimation();
animation.cancel();
}
}
布局文件代码 dialog_loading1.xml:
样式二:
样式二
public class LoadingDataDialog2 extends Dialog {
public LoadingDataDialog2(@NonNull Context context) {
super(context, R.style.MyDialog);
}
private String title = "请求中";
public void setTitle(String title) {
this.title = title;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_loading);
TextView textView = findViewById(R.id.tv_dialog_loading_data);
textView.setText(title);
setCanceledOnTouchOutside(false);
}
}
布局文件dialog_loading.xml:



