【发布时间】:2021-05-14 09:42:47
【问题描述】:
我正在设计一个小部件,其中包含一个带有我自己的动画和样式的 ProgressBar。
为此,我使用图层列表定义了一个可绘制对象:
refresh_animation_indeterminate.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<rotate
android:drawable="@mipmap/ic_refresh"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="72"
android:toDegrees="1440"/>
</item>
</layer-list>
然后是使用这个drawable的样式
<style name="WidgetProgressBarStyle" parent="@android:style/Widget.ProgressBar">
<item name="android:indeterminateDrawable">@drawable/refresh_animation_indeterminate</item>
</style>
然后我在小部件的 ProgressBar 中使用样式
<ProgressBar
android:id="@+id/widgetProgressBar"
style="@style/WidgetProgressBarStyle"
android:layout_width="50dp"
android:layout_height="50dp" />
我遇到的问题是,虽然 ProgressBar 在 AVD 模拟设备中没有问题(我尝试使用 API 30 和 24、Pixel 2 XL 和 Pixel 3a XL 的几个模拟设备),但在实际终端模拟中没有超越第一帧的进展;也就是说,图标卡在 72 度 (=fromDegrees)。我已经尝试过两台三星设备(一台使用 API 30,另一台使用 API 24 的旧设备)和一台使用 API 28 的 LG。它们都一样。但同时在模拟器中完美运行。
我在这里遗漏了什么吗?为什么它在模拟器中有效,但在真实终端中无效?我应该为真实终端配置什么吗? (在我的应用程序或终端中)
提前非常感谢! (对不起,如果我没有填写正确的信息,因为这是我第一次在这里发布问题)
【问题讨论】:
标签: android animation widget progress-bar