• 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>

  • 相关阅读:
    什么?这个策略可以加速大模型推理2-2.5倍以上?
    【java期末复习题】第13章 多线程
    【python数据分析基础】—对列操作:获取DataFrame不同的类型columns
    长假,GPT来敲(Jué)门(Fén)
    第五章:WPF中的事件与命令
    脑网络图谱
    C# 进程和窗体句柄踩坑笔记
    面试最常问的问题——被虐了之后,我翻烂了equals源码,总结如下
    (未完待续)【Netty专题】Netty实战与核心组件详解
    【WSN通信】基于最佳簇半径的无线传感器网络分簇路由算法附matlab代码
  • 原文地址:https://blog.csdn.net/NewActivity/article/details/126190894