100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android Loading加载动画

Android Loading加载动画

时间:2023-12-20 02:42:11

相关推荐

Android Loading加载动画

1.创建一个工具类LoadingDialog

public class LoadingDialog extends Dialog {private ImageView iv_ing;private AnimationSet animationSet;private static LoadingDialog instance;public static LoadingDialog getInstance(Context context) {if(instance == null) {instance = new LoadingDialog(context);}return instance;}public static void setInstance(LoadingDialog instance) {LoadingDialog.instance = instance;}private LoadingDialog(@NonNull Context context) {super(context);}private LoadingDialog(@NonNull Context context, @StyleRes int themeResId) {super(context, themeResId);}private LoadingDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {super(context, cancelable, cancelListener);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//背景透明处理getWindow().requestFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));getWindow().setDimAmount(0f);this.setContentView(R.layout.dialog_loading);//设置dialog属性setCancelable(true);setCanceledOnTouchOutside(false);iv_ing = findViewById(R.id.iv_ing);//加载动画loadIng();}@Overrideprotected void onStart() {super.onStart();iv_ing.startAnimation(animationSet);//开始播放}@Overrideprotected void onStop() {super.onStop();}//加载动画private void loadIng() {animationSet = new AnimationSet(true);RotateAnimation animation_rotate = new RotateAnimation(0, +359,RotateAnimation.RELATIVE_TO_SELF, 0.5f,RotateAnimation.RELATIVE_TO_SELF, 0.5f);//第一个参数fromDegrees为动画起始时的旋转角度 //第二个参数toDegrees为动画旋转到的角度//第三个参数pivotXType为动画在X轴相对于物件位置类型 //第四个参数pivotXValue为动画相对于物件的X坐标的开始位置//第五个参数pivotXType为动画在Y轴相对于物件位置类型 //第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置animation_rotate.setRepeatCount(-1);animation_rotate.setStartOffset(0);animation_rotate.setDuration(1000);LinearInterpolator lir = new LinearInterpolator();animationSet.setInterpolator(lir);animationSet.addAnimation(animation_rotate);}}

2.dialog_loading布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:id="@+id/ll_body"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#00000000"android:orientation="horizontal"android:padding="10dp"><RelativeLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><!-- <ImageView--><!-- android:layout_width="wrap_content"--><!-- android:layout_height="wrap_content"--><!-- android:layout_centerInParent="true"--><!-- android:src="@drawable/ic_loading_ing" />--><!-- <ImageView--><!-- android:layout_width="50dp"--><!-- android:layout_height="50dp"--><!-- android:layout_centerInParent="true"--><!-- android:src="@drawable/ic_loading_logo" />--><ImageViewandroid:id="@+id/iv_ing"android:layout_width="60dp"android:layout_height="60dp"android:layout_centerInParent="true"android:src="@drawable/ic_loading" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="正在加载中..."android:layout_below="@+id/iv_ing"android:layout_marginTop="20dp"/></RelativeLayout></LinearLayout>

3.调用

LoadingDialog.getInstance(this).show();//显示LoadingDialog.getInstance(context).hide();//隐藏销毁当前页面后LoadingDialog.setInstance(null);//设置为空 然会报错

加载图片

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。