Android上不确定水平进度条的样式

2023-11-27

确定进度条的样式很容易,有很多教程可以实现这一点。这是我正在使用的:

<ProgressBar
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="8dp"
    android:background="@drawable/progress_background"
    android:progressDrawable="@drawable/progress"
    android:id="@+id/progressBar" />

可绘制的progress_background.xml:

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="@color/colorAccent" />
                <corners android:radius="4dp" />
            </shape>
        </clip>
    </item>
</layer-list>

它看起来像这样:

enter image description here

但是,当尚未取得进展时,我想使用不确定的进展。所以我尝试:

<ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="8dp"
        android:background="@drawable/progress_background"
        android:progressDrawable="@drawable/progress"
        android:indeterminateTint="@color/colorAccent"
        android:indeterminateTintMode="src_in"
        android:indeterminate="true"
        android:id="@+id/progressBar" />

但不确定的进度不会延伸到条形高度:

enter image description here

我也尝试使用可绘制文件对其进行样式设置,但它看起来像是损坏的确定进度条(再次从 0 填充到 100)。

所需的不确定进度条应该看起来像常规进度条,但具有 8dp 高度和圆角。


默认不确定进度条动画使用非 9-patch png。所以它不能拉伸超过 8dp 高度的进度条。你应该添加android:indeterminateDrawable带有自定义动画:

<animation-list
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:oneshot="false">
    <item android:drawable="@drawable/progressbar_indeterminate1" android:duration="50" />
    <item android:drawable="@drawable/progressbar_indeterminate2" android:duration="50" />
    <item android:drawable="@drawable/progressbar_indeterminate3" android:duration="50" />
    ...
    <item android:drawable="@drawable/progressbar_indeterminateX" android:duration="50" />
</animation-list>

然后制作可绘制的动画,如下所示(可以是 xml、图像或 9-patch):

动画帧1

动画帧2

android (api21+) 的版本绝不会使用 AnimatedVectorDrawable 来表示不确定的 ProgressBar。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android上不确定水平进度条的样式 的相关文章

随机推荐

  • 反应式表单数组 - 推送新元素时避免验证错误

    我有一个由单个表单数组组成的表单组 ngOnInit this deviceDetailsFormGroup this formBuilder group deviceDetails this formBuilder array this
  • 如何禁用纸浆的计算日志

    我在 python 中使用 pulp 和 GUROBI 来解决一些优化问题 例如 GUROBI的计算日志是 Optimize a model with 12 rows 25 columns and 39 nonzeros Coefficie
  • 从地址字符串中提取邮政编码

    我有一些完整的地址 例如 addr1 5285 KEYES DR KALAMAZOO MI 49004 2613 addr2 PO BOX 35 COLFAX LA 71417 35 addr3 64938 MAGNOLIA LN APT
  • 如何避免 wkhtmltopdf 表格行内分页

    我正在从 html 页面生成 pdf 报告一张桌子 我在用wkhtml转pdf为目的 当pdf生成时在 tr 标记中的任意位置中断 我想避免它 2015 年 9 月 17 日更新 检查您正在使用的版本 据说 wkhtmltopdf 0 12
  • dispatchEvent 不触发 jQuery.on() 事件监听器

    我有以下触发自定义命名事件的代码 elem addEventListener click function event event preventDefault Do some processing stuff var event new
  • 警告:类加载器在 Android Studio 2.1.2 中引用了未知路径

    我是 Android 和 Android Studio 的新手 我在 Android Studio 中创建了一个 HelloWorld 项目 当我在设备上运行该应用程序时 我收到以下警告 如何修复这些警告 6 15 11 21 22 287
  • 使用scikit-learn分类为多个类别

    我正在尝试使用 scikit learn 的监督学习方法之一将文本片段分类为一个或多个类别 我尝试过的所有算法的预测函数都只返回一个匹配项 例如我有一段文字 Theaters in New York compared to those in
  • 如何将数字字符串排序为数字?

    如果你有这样的字符串 file 0 file 1 file 2 file 3 file 4 file 5 file 6 file 11 如何对它们进行排序 以便 file 11 不会出现在 file 1 之后 而是出现在 file 6 之后
  • List<> 元素是否按顺序位于堆状数组中?

    我正在学习C 基本上知道数组和数组之间的区别List最后一个是通用的 可以动态增长 但我想知道 are List元素顺序位于堆状数组中 还是每个元素 随机 位于不同位置 如果这是真的 这是否会影响内存访问和数据检索的速度 如果这是真的 这就
  • 函数内的“static”关键字?

    我正在查看 Drupal 7 的源代码 发现了一些我以前没有见过的东西 我在 php 手册中做了一些初步的查找 但它没有解释这些示例 关键字是什么static对函数内的变量做什么 function module load all boots
  • Vb.net随机数生成器多次生成相同的数字

    我有这个程序从文件中生成名字和姓氏 当我运行该程序时 我在三个文本框中输入信息 前两个是工资低和高 salary1 text salary2 text 最后一个是我想要的 份数 copies text 当我在文本中输入诸如10之类的数字时它
  • 属性-maven-插件:加载属性文件时出错

    我想将 pom xml 中的所有属性提取到属性文件中 这些是常见的属性 如依赖版本 插件版本和目录 我正在使用properties maven plugin 但它没有按照我想要的方式工作 我的 pom xml 的重要部分
  • match 如何在其怀抱中使用 `continue` 进行编译?

    我正在阅读 Rust 编程语言 一书 我偶然发现了一个简单的表达式 let guess u32 match guess trim parse Ok num gt num Err gt continue 如何match手臂上有不同的表情 例如
  • 如何在 Xcode 中查找 print() 或 NSLog() 控制台输出的来源

    我不确定这是否可能 下面是一个示例情况 有些东西正在打印到我的控制台 但我不知道它来自代码中的哪里 我使用 Xcode 中的 Finder 对 NSLog 和 print 等术语进行了快速搜索 没有出现任何相关的内容 Xcode 有什么快速
  • 如何为谷歌MapView制作具有视差滚动效果的自定义CoordinatorLayout.Behavior?

    我尝试为谷歌制作视差滚动效果MapView and RecycleView using CoordinatorLayour 因此 根据在网上找到的一些教程 我编写了以下代码 布局
  • 如何在 github 主页中删除“您贡献的存储库”

    我已向存储库提交了一个新问题 之后 我的 github 主页中始终会出现一个通知选项卡 我只是不想删除这个烦人的存储库 但我无法弄清楚 你有没有尝试过https docs github com en github setting up an
  • 如何猴子修补`__call__`方法?

    我似乎无法猴子修补 call 类实例的方法 是的 我只想修补单个实例 而不是全部 以下代码 class A object def test self return TEST def call self return EXAMPLE a A
  • dataAdapter .Fill 和 .Update 的比较

    我已经阅读了 MSDN 资源和几个论坛 但仍然不明白这两者之间有什么区别dataAdapter Fill and dataAdapter Update 我尝试使用它们从我的程序中更新数据库并且它有效 但是当我尝试删除update 功能 它仍
  • Zend 和 .htaccess

    我的默认 zend 应用程序具有此默认结构 zend webroot application config library public htaccess index php 默认 htaccess 通过 public index php
  • Android上不确定水平进度条的样式

    确定进度条的样式很容易 有很多教程可以实现这一点 这是我正在使用的