• Android 实现ProgressBar菊花旋转进度条的 效果(用于耗时loading时显示)


     

    1,创建简单的自定义Dialog

    2,设置dialog属性与布局

    3,布局里使用结合了animated-rotate 的progress

    1,创建简单的自定义Dialog

    1. public class LoadDia extends Dialog {
    2. public LoadDia(@NonNull Context context, int themeResId) {
    3. super(context, R.style.LoadDiaStyle);
    4. }
    5. protected LoadDia(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {
    6. super(context, cancelable, cancelListener);
    7. }
    8. @Override
    9. protected void onCreate(Bundle savedInstanceState) {
    10. super.onCreate(savedInstanceState);
    11. setContentView(R.layout.load_view);
    12. setCancelable(true);//设置点击dialog外部 不可取消
    13. setCanceledOnTouchOutside(true);//设置点击dialog外部 不可取消
    14. }
    15. }

    2,设置dialog属性与布局

    style文件:
     

    1. <style name="LoadDiaStyle" parent="@android:style/Theme.Dialog">
    2. <item name="android:windowBackground">@android:color/transparentitem>
    3. <item name="android:windowNoTitle">trueitem>
    4. <item name="android:windowFrame">@nullitem>
    5. <item name="android:windowIsFloating">trueitem>
    6. <item name="android:backgroundDimEnabled">falseitem>
    7. <item name="android:windowSoftInputMode">adjustNothingitem>
    8. <item name="android:windowIsTranslucent">falseitem>
    9. <item name="android:windowContentOverlay">@nullitem>
    10. style>

    布局文件:
     

    1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:layout_width="wrap_content"
    3. android:layout_height="wrap_content"
    4. android:background="@drawable/spe_dia_load"
    5. android:orientation="vertical">
    6. <ProgressBar
    7. android:layout_centerHorizontal="true"
    8. android:id="@+id/loadpro"
    9. android:layout_width="@dimen/dp_34"
    10. android:layout_height="@dimen/dp_34"
    11. android:indeterminateBehavior="repeat"
    12. android:indeterminateDrawable="@drawable/spe_dia_load_view"
    13. android:layout_marginTop="@dimen/dp_15" />
    14. <TextView
    15. android:layout_below="@+id/loadpro"
    16. android:layout_centerHorizontal="true"
    17. android:id="@+id/loadDes"
    18. android:layout_width="wrap_content"
    19. android:layout_height="wrap_content"
    20. android:layout_marginBottom="@dimen/dp_9"
    21. android:layout_marginEnd="@dimen/dp_19"
    22. android:layout_marginStart="@dimen/dp_19"
    23. android:layout_marginTop="@dimen/dp_9"
    24. android:text="@string/http_loading"
    25. android:textColor="@android:color/white"
    26. android:textSize="@dimen/sp_13" />
    27. RelativeLayout>

    重点就是这个:

     3,布局里使用结合了animated-rotate 的progress

    spe_dia_load_view:
    
    
    1. <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:drawable="@drawable/rot_load"
    3. android:pivotX="50%"
    4. android:pivotY="50%" />

    里面是一个普通的图片png文件~
     

    rot_load:
    
    

     页面需要使用时:

     

    简单的菊花loading完成

    -------------------------end---------------------------------

    另外一种 圆圈旋转动画

     

    1. <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:fromDegrees="0"
    3. android:pivotX="50%"
    4. android:pivotY="50%"
    5. android:toDegrees="360">
    6. <shape
    7. android:innerRadius="8dp"
    8. android:shape="ring"
    9. android:thickness="3dp"
    10. android:useLevel="false">
    11. <gradient
    12. android:centerY="0.50"
    13. android:endColor="#cccccc"
    14. android:startColor="@color/white"
    15. android:type="sweep"
    16. android:useLevel="false" />
    17. shape>
    18. animated-rotate>

  • 相关阅读:
    Netty——搭建一个聊天室(笔记)
    2022年Java面试题整理归纳(持续更新)
    javascript算法排序之希尔排序
    Beautiful Soup4语法讲解使用
    超低价:阿里云双11服务器优惠价格表_87元一年起
    libssl.so.10: cannot open shared object file: No such file or directory
    芯片学习记录TLP104
    玩转宏定义——从入门到进阶
    Android性能优化——卡顿优化
    Day01-Java-报表以及表格
  • 原文地址:https://blog.csdn.net/NewActivity/article/details/126190894