如何在Android中将自定义下拉框图像应用于进度对话框

9

嗨,我试图在Android的进度对话框中应用自定义旋转器图像。我使用一个 .gif 文件来实现这个目的,并通过以下代码应用它:

dialog = new ProgressDialog(BackupRestoreActivityContext);    
dialog.setCancelable(true);    
dialog.setIcon(resId);    
dialog.setTitle(title);    
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);    
dialog.setIndeterminate(true);
dialog.setIndeterminateDrawable(BackupRestoreActivityContext.getResources().getDrawable(R.drawable.bar));    
dialog.show();

通过这段代码,Spinner图像更改为bar.gif,但它没有旋转,请帮忙检查一下,谢谢。非常感谢您在此方面提供的任何帮助。
2个回答

9
在Android中,ImageView中的动态gif图像无法正常工作。您需要像ApiDemos示例中所示的那样将它们播放为电影。
但是,您可以将gif文件分解为多个文件,并创建一个动画资源文件。 动画文件是描述要显示的可绘制列表及每帧的持续时间(或要应用的变换,如果可以使用它们)的xml文件。 您可以在官方文档中阅读详细信息: http://developer.android.com/guide/topics/resources/animation-resource.html#Frame 然后,这个可绘制对象应该可以在您的ProgressDialog中很好地工作。

9
稍微晚了一些,但你可以这样做:
1. 制作一个动画drawable。
例如:my_animation.xml
<?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/myImage1"
        android:duration="200"/>
    <item
        android:drawable="@drawable/myImage2"
        android:duration="200"/>
...


</animation-list>

2.- 在你的活动中调用

dialog = new ProgressDialog(BackupRestoreActivityContext);    
dialog.setCancelable(true);    
dialog.setIcon(resId);    
dialog.setTitle(title);    
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);    
dialog.setIndeterminate(true);
dialog.setIndeterminateDrawable(BackupRestoreActivityContext.getResources().getDrawable(R.drawable.my_animation));
dialog.show();

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