如何获得与带有 2 个旋转圆圈的 ICS 相同的未定义 ProgressBar?

2024-01-06

我目前正在编写一个开源项目,旨在将著名的 Holo 主题移植到以前版本的 Android(从 1,6 开始!!!)

一切工作正常,我对自己的工作感到非常自豪,但我现在面临的问题是让 ProgressBar 看起来完全像 ICS 一样。

我使用了与 Android 源代码相同的 xml 代码:(progress_medium_holo.xml)

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <rotate
             android:drawable="@drawable/spinner_48_outer_holo"
             android:pivotX="50%"
             android:pivotY="50%"
             android:fromDegrees="0"
             android:toDegrees="1080" />
    </item>
    <item>
        <rotate
             android:drawable="@drawable/spinner_48_inner_holo"
             android:pivotX="50%"
             android:pivotY="50%"
             android:fromDegrees="720"
             android:toDegrees="0" />
    </item>
</layer-list>

使用相同的PNG:

spinner_76_outer_holo.png 和 spinner_76_inner_holo.png

enter image description here white pic => enter image description here

但不幸的是,我只得到了一个圆圈......

如果您不明白我的意思,您可以在 ICS 之前的设备上尝试此应用程序:

https://play.google.com/store/apps/details?id=com.WazaBe.HoloDemo https://play.google.com/store/apps/details?id=com.WazaBe.HoloDemo

完整来源在这里:https://github.com/ChristopheVersieux/HoloEverywhere https://github.com/ChristopheVersieux/HoloEverywhere

非常感谢你的帮助


刚刚在这里找到了答案!

https://stackoverflow.com/a/8697806/327402 https://stackoverflow.com/a/8697806/327402

非常有用的帖子!

确实存在平台限制,尽管它不是您想象的那样。问题是 API11 之前,RotateDrawable其中有一些粗略的代码,要求动画通过检查是否顺时针旋转toDegrees大于fromDegrees;如果不是,则两者被迫平等。如果您修改示例以使第二个项目向前移动(从 0 到 720,甚至 -720 到 0),则两个图像在所有平台上都可以正常显示动画;尽管我意识到这违背了你的目标。

看看 Google Codesearch 的缓存版本RotateDrawable.inflate(),这是用于将 XML 转换为对象的方法的 2.3 版本,您就会明白我的意思。

旋转绘图.java http://codesearch.google.com/codesearch#uX1GffpyOZk/graphics/java/android/graphics/drawable/RotateDrawable.java...有问题的代码位于第 235 行左右...

    float fromDegrees = a.getFloat(
            com.android.internal.R.styleable.RotateDrawable_fromDegrees, 0.0f);
    float toDegrees = a.getFloat(
            com.android.internal.R.styleable.RotateDrawable_toDegrees, 360.0f);

    toDegrees = Math.max(fromDegrees, toDegrees); //<--There's the culprit

这需要一个 XML 块,就像那里的第二个项目一样,并将其转换为RotateDrawable最终得到相同的值fromDegrees and toDegrees(在你的例子中,720),导致图像只是静止不动。您可以通过将起始值设置为某个值而不是 360 的倍数(例如 765)来进行可见测试。您会看到图像仍然没有动画,但旋转到初始坐标。

Honeycomb/ICS 源中删除了这个尴尬的检查,这就是为什么您可以在这些平台上进行向后旋转。另外,看起来没有办法从 Java 代码中设置这些值,因此自定义RotateDrawableCompat可能在你的未来:)

HTH

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

如何获得与带有 2 个旋转圆圈的 ICS 相同的未定义 ProgressBar? 的相关文章

  • 在phonegap中播放本地声音

    我有一个 wav文件在我的www文件夹 我正在使用 jQuery 和以下代码 警报响起 但声音不播放 难道我做错了什么
  • 更改操作栏标题文本颜色

    我正在尝试更改 ActionBar 中标题文本的颜色 但我似乎无法让它工作 这是我尝试使用的风格 在我的应用程序主题中我使用titleTextStyle
  • 在屏幕上随机生成一个圆圈并将其设为绿色或红色

    所以我一直在尝试制作一个游戏应用程序 它可以在 Android 屏幕上随机显示带有文本的红色按钮或带有文本的绿色按钮 如果有人可以帮助我 我将不胜感激 另外 如果有人知道如何做到这一点 我想慢慢地产生更快的酷优势 谢谢 SuppressLi
  • 将寻呼机视为列表视图行项目

    我有一个包含 20 行的列表视图 我想为列表视图中的每一行设置一个视图寻呼机 由于列表视图的行中的项目可能是一个或多个 并且我想使用视图分页器显示列表视图行项目 为此 我使用以下代码 将显示在列表视图行中的自定义布局 作为分页器项目
  • 从Asynctask返回结果

    如果我的 Android 应用程序中有这个后台工作文件 并且它从我的数据库获取数据 我如何将字符串 结果 传递给另一个类 后台工作人员连接到我的服务器 然后使用 php 连接到数据库 public class BackgroundWorke
  • android studio 底部工具栏的“运行”选项卡消失了

    Android Studio 底部工具栏中曾经有一个 运行 选项卡 但该选项卡不再显示 怎么把它带回来 请检查下图以了解它消失之前的位置 Run 选项卡曾经位于 TODO 选项卡之前的红色圆圈中 查看 gt 工具窗口 gt 运行 Or us
  • Android接收通知打开和取消事件

    我从 webService 接收数据以生成自定义通知 我想追踪Intent要知道open 点击 或cancel 滑动 通知上的事件 以报告服务器进行分析 有没有听众onIntentStart or onIntentCanceled 也许是通
  • 来自外部 XML 的 Android 本地化

    是否可以使用从服务接收到的 XML 在运行时翻译 Android 应用程序 如果可能的话 请有人指出我正确的方向 谢谢 Warning 我读到的所有内容都表明 让您的应用程序更改语言不是一个好主意 因为 Android 框架不支持它 并且可
  • Android框架结构与MFC/Win32结构的比较?

    我为 Android 和 Windows 进行开发 使用 MFC 有时使用 win32 昨天我随意比较了这两个框架 它们显然非常非常不同 因此 Windows 开发与 Android 开发有很大不同 我想知道人们认为 Android 这样的
  • 如何在 Bootstrap 3 中制作进度条动画?

    我正在尝试为 Bootstrap 进度条设置动画 但我不知道该怎么做 我得到了宽度的值但是console log bar width 返回宽度px但不是 如内联所示style width 90 我用代码重新创建了一个 bootply Boo
  • 找不到资源矢量绘图的异常

    我将在某些设备上运行我的应用程序 其崩溃日志如下 01 04 16 54 02 206 7466 7466 com lawnmowers E AndroidRuntime FATAL EXCEPTION main Process com l
  • 从 AlertDialog 返回值

    我想构建一个函数来创建 AlertDialog 并返回用户输入的字符串 这是我用于创建对话框的函数 如何返回该值 String m Text private String openDialog String title AlertDialo
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • Exif 方向标签返回 0

    我正在开发一个自定义相机应用程序 我面临以下问题 当我尝试使用检索方向时ExifInterface 它总是返回 0 ORIENTATION UNDEFINED 这使我无法将图像旋转到正确的状态 从而无法正确显示 我使用示例代码来设置相机旋转
  • 在android中的日期选择器对话框中显示当前日期

    我多次尝试在日期选择器对话框中显示当前日期 但失败了 它显示 1 1 1990 我已经遵循了堆栈溢出的一些答案 但不幸的是这些对我不起作用 谁能解释一下在日期选择器对话框中显示当前日期的代码 谢谢 It may help you publi
  • 如何手动添加Android Studio依赖

    我多次尝试向我的项目添加依赖项 但每次都会出现错误 我想添加它们的依赖项是 de hdodenhof circleimageview 1 3 0 and com github bumptech glide glide 3 6 1 所以我想下
  • TYPE_ACCELEROMETER 和 TYPE_LINEAR_ACCELERATION 传感器有什么区别?

    I think TYPE ACCELEROMETER显示设备加速 但是 我不明白什么时候应该使用TYPE LINEAR ACCELERATION 我需要计算移动设备的速度 哪种传感器适合此应用 另外 我读到TYPE LINEAR ACCEL
  • 将数据放入短信发送意图中?

    我想发送短信 如果文字太长 我会将其分成多条消息 我试图将一些额外的信息放入 已发送 意图中 以了解哪个部分已发送 以及所有部分何时完成 ArrayList
  • Android:列“_id”不存在

    我收到这个错误 IllegalArgumentException 列 id 不存在 当使用SimpleCursorAdapter从我的数据库中检索 该表确实有这个 id柱子 注意到这是一个常见问题 我尝试根据网上的一些解决方案来解决它 但它
  • 将 firebase 消息传递添加到 flutter android 项目时出现依赖错误

    我已将 firebase 消息传递添加到我的 Flutter 项目中 在 iOS 上运行良好 在 Android 上运行时出现错误 Android dependency androidx localbroadcastmanager loca

随机推荐

  • 文本索引 MongoDB,搜索字符串的最小长度

    我已经从 mongo shell 为集合 X 创建了一个文本索引 db X ensureIndex name text cusines text address city text 现在如果一个文档的 name 属性有一个值seasons
  • 响应式设计中的固定位置

    我正在使用响应式框架 1140px 在移动版本中 我必须修复徽标的位置 但不能使其与滚动内容重叠 基本上固定位置但不固定滚动图像 这可以实现吗 你想使用position absolute position fixed将元素固定在屏幕上 因此
  • java中通过HTTP Get下载文件

    我编写了一个下载 Servlet 以根据 messageID 参数返回文件 下面是 doGet 方法 Override protected void doGet HttpServletRequest request HttpServletR
  • 使用 Visual Basic 在 Windows 窗体中嵌入 DOS 控制台

    我设法从其他问题中找到一些数据 使我能够实现下一个代码 Imports System Runtime InteropServices Public Class Form1
  • 错误消息:“无法连接到 Gmail”

    有时我会从许多脚本的基于时间的触发器中收到此错误消息 我可以做些什么还是只是服务器端问题 这看起来确实像服务器端 但预计它偶尔会失败 我想你应该实施一个指数退避 http googleappsdeveloper blogspot com b
  • SQLite 数据库创建时自动增量附近的语法错误

    又是我 那个使用 SQLite net 的人 当我的表主键上没有自动增量时 我的代码可以正常工作 我想自动增量键 所以我像这样重建了表 using SQLite namespace VehicleTracks Models public c
  • Automapper 与 Dapper 的地图绘制对比

    这个问题是为了验证当前的实施在最佳实践和性能方面是否是正确的方法 到目前为止 在我之前的所有公司中 我一直在使用 Auto Mapper 将关系对象映射到域模型实体 并将域模型实体映射到 Dtos ORM 工具是实体框架 在我目前的公司中
  • 观看 OS 2 问题以设置图像

    我只想将图像添加到我的 WKInterfaceController 但是 Xcode 告诉我 在 Watch 上找不到名为 circle44 的图片 IBOutlet var cirlceImage WKInterfaceImage ove
  • JSON 模式:日期大于其他日期

    我有一个像这样的 json 模式 schema http json schema org draft 04 schema title Operation description The schema of an operation type
  • 如何管理故事板中的项目以添加展开/折叠 tableView 单元格的可能性

    我试图在我的 tableView 中创建通过单击展开和折叠各个单元格的能力 不考虑代码 我如何在情节提要中设置元素和约束 从某种意义上说 在我的单元格的内容视图中 我应该添加多少个 UIView 假设我想在展开单元格时将单元格的大小加倍 那
  • 使用 GD 调整图像大小和裁剪图像,同时保留纵横比

    我目前正在编写一个基于Uploadify 的上传器脚本 现在 我调整给定图像和水印的大小之一 这一切都运行良好 但我需要脚本来调整高度大小 然后裁剪宽度 以便长宽比不会混乱 到目前为止 这是我的代码 if fileExtension jpg
  • 列表的排列 - Haskell

    我想用 2 个列表创建所有可能的子组组合 这是一个执行此操作的函数 getCombinations a gt a getCombinations na do a lt na b lt na a b 如果将 abc 传递给此函数 它将返回 a
  • Julia 相当于 R 的 ?? (双问号help.search所有包)

    In R你可以搜索文档 https www r project org help html通过输入问号 或双问号 如何在 Julia REPL 的手册中搜索字符串 gt first No documentation for first in
  • 如何在 Spring Boot 中将多部分文件从一个服务传递到另一个服务?

    我想将多部分文件从一项服务传递到另一项服务 客户端 gt 服务1 gt 服务2 这显示错误 500 内部服务器错误 当前请求不是多部分请求 当我将文件从 Service1 传递到 Service2 时 客户端 gt Service2 当我直
  • Laravel 4 - unserialize():32 字节偏移量 0 处出错

    当我安装 Laravel 4 时 我收到此错误 ErrorException unserialize Error at offset 0 of 32 bytes C xampp htdocs blog laravel bootstrap c
  • Android N:在更新复选框首选项之前检查 DND 状态是否已更改

    我的应用程序将铃声模式设置为静音 但使用 Android N 我得到了java lang SecurityException Not allowed to change Do Not Disturb state 我按照这个步骤操作post
  • Flutter如何处理框内固定大小的图像?

    我是 Flutter 的新手 我喜欢它 但我对构建布局感到不舒服 我正在开发一个包含卡片列表视图的应用程序 每张卡片都位于容器内 并包含图像 具有固定的高度和宽度 和文本 我无法将图像正确放置在卡内 我希望图像覆盖盒子的宽度 谢谢 这是代码
  • 连接 Android 设备时 shmemBase_attach 失败

    我正在尝试将计算机上的 jdb 连接到 Android 设备上的进程 实际上是任何进程 但它根本不起作用 所以我使用的命令直接来自 Google ADB 文档 首先我做 adb forward tcp 3456 jdwp pid 然后我尝试
  • React PHP 如何处理异步非阻塞 I/O?

    React PHP 如何处理异步非阻塞 I O Nodejs 使用其事件队列来处理不同线程上的 I O 它使用 libuv 来实现此目的 PHP 中没有类似的东西 React 如何处理单线程上的非阻塞 I O 进程 React PHP 提供
  • 如何获得与带有 2 个旋转圆圈的 ICS 相同的未定义 ProgressBar?

    我目前正在编写一个开源项目 旨在将著名的 Holo 主题移植到以前版本的 Android 从 1 6 开始 一切工作正常 我对自己的工作感到非常自豪 但我现在面临的问题是让 ProgressBar 看起来完全像 ICS 一样 我使用了与 A