在Android状态栏中显示不确定进度条

5

我想展示一个与不定进度条相同的动画图形(不是水平的,而是圆形的),在我的正在进行的通知仍然存在时,在状态栏中显示。

我试图找到对应于不定进度条的资源ID,但发现它是通过代码进行动画处理的。

我尝试将我的通知实例中的图标ID设置为一个动态GIF,但只有GIF的第一帧显示在状态栏中。

如果我将图标ID设置为android.R.drawable.progress_indeterminate_horizontal,则图形会完美地动画。那么,我的问题是-在这种情况下如何实现动画? 通过iconLevel吗? 我如何设置一个动画图标,而无需自己定期进行动画处理?

2个回答

5
我找到了答案。要求创建一个动画列表(例如保存为my_spinner.xml),其中包含不同角度从0到360旋转的各种旋转器图像。
<?xml version="1.0" encoding="utf-8"?>
<animation-list
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/spinner_0"
        android:duration="200" />
    <item android:drawable="@drawable/spinner_60"
        android:duration="200" />
    <item android:drawable="@drawable/spinner_120"
        android:duration="200" />
    <item android:drawable="@drawable/spinner_180"
        android:duration="200" />
    <item android:drawable="@drawable/spinner_240"
        android:duration="200" />
    <item android:drawable="@drawable/spinner_360"
        android:duration="200" />
</animation-list>

在创建通知时,将my_spinner.xml设置为图标ID。

Notification n = new Notification(R.drawable.my_spinner, null, 0);

这个函数已经过时了,有新的方法可以实现吗? - Rishabh876

1

您可以通过请求适当的Windows功能并设置进度条可见性来在标题中显示进度条:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    //any code here
    setProgressBarIndeterminateVisibility(true);

然而,它将出现在标题中,而不是状态栏中。


抱歉,我知道标题中有进度条。我的要求是在状态栏中显示它。谢谢! - Akshay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接