您的当前位置:首页正文

Android自定义类似ProgressDialog效果的Dialog

2021-08-15 来源:好走旅游网
Android自定义类似ProgressDialog效果的Dialog. 方法如下:

1.首先准备两张自己要定义成哪样子的效果的图片和背景图片(也可以不要背景)。 如我要的效果:

2.定义loading_dialog.xml布局文件(这里你也可以按自己的布局效果定义,关键是要有个imageView):

[html] view plaincopy

1.

2. 11. android:background=\"@drawable/loading_bg\"> 12. 13. android:id=\"@+id/img\"

14. android:layout_width=\"wrap_content\" 15. android:layout_height=\"wrap_content\" 16. android:src=\"@drawable/publicloading\" 17. /> 18. 19. android:id=\"@+id/tipTextView\" 20. android:layout_width=\"wrap_content\" 21. android:layout_height=\"wrap_content\" 22. android:layout_marginLeft=\"10dp\" 23. android:text=\"数据加载中……\" />

24.

3.定义一个loadingDialog中imageView转动的动画:loading_animation.xml

[html] view plaincopy

1.

2. .com/apk/res/android\"> 3. 4. android:interpolator=\"@android:anim/linear_interpolator\" 5. android:pivotX=\"50%\" 6. android:pivotY=\"50%\" 7. android:fromDegrees=\"0\" 8. android:toDegrees=\"+360\" 9. android:duration=\"1500\" 10. android:startOffset=\"-1\" 11. android:repeatMode=\"restart\" 12. android:repeatCount=\"-1\"/> 13.

4.定义dialog的style.

[java] view plaincopy

1.

2.

5.写点创建Dialog的代码,你可以自己封装成一个方法。

[java] view plaincopy

1. /**

2. * 得到自定义的progressDialog 3. * @param context 4. * @param msg 5. * @return

6. */

7. public static Dialog createLoadingDialog(Context context, String msg) {

8.

9. LayoutInflater inflater = LayoutInflater.from(context);

10. View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载

view

11. LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view

);// 加载布局

12. // main.xml中的ImageView

13. ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img); 14. TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);/

/ 提示文字

15. // 加载动画

16. Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation( 17. context, R.anim.load_animation); 18. // 使用ImageView显示动画

19. spaceshipImage.startAnimation(hyperspaceJumpAnimation); 20. tipTextView.setText(msg);// 设置加载信息 21.

22. Dialog loadingDialog = new Dialog(context, R.style.loading_dialog);/

/ 创建自定义样式dialog 23.

24. loadingDialog.setCancelable(false);// 不可以用“返回键”取消

25. loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(

26. LinearLayout.LayoutParams.FILL_PARENT,

27. LinearLayout.LayoutParams.FILL_PARENT));// 设置布局 28. return loadingDialog; 29. 30. }

最后来张整体的效果图:

因篇幅问题不能全部显示,请点此查看更多更全内容