ProgressDialog具有自定义图像

问题描述:

我使用的是默认的进度的Android的对话框(不确定)ProgressDialog具有自定义图像

ProgressDialog diag = new ProgressDialog(this); 
diag.setIndeterminate(); 
diag.show(); 

但是我的客户不喜欢这个形象,所以他与具有图片(这应该旋转一个PNG提供了我/旋转)。

有没有一种方法可以在ProgressDIalog中替换它,以便它可以旋转我的图像?或者我怎么能做到这一点?

谢谢

首先,创建一个可绘制的动画(如./res/drawable/anim1.xml):

<?xml version="1.0" encoding="utf-8"?> 
<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/ic" 
    android:fromDegrees="0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toDegrees="360" /> 

然后ad d它作为一个不确定的可绘制:

ProgressDialog diag = new ProgressDialog(this); 
    diag.setIndeterminate(true); 
    //here is the trick: 
    diag.setIndeterminateDrawable(getResources().getDrawable(R.drawable.anim1, null));  
    diag.show(); 

但是,这可能无法在较旧版本的Android上顺利运行。

P.S.您可以通过增加度数(从360到360n,其中n> = 1)来加快动画速度。如果图像是上下对称,则可以使用180),因为如果设置此类动画似乎不支持android:frameDurationandroid:frameCount喜欢这个。

+0

谢谢。我会试试看,但你为什么说它在以前的版本中不起作用 – Snake

+0

@Snake,它可能*在旧版本(pre-Lolipop)上不能正常工作。我没有在Kitkat或更早的版本上测试它,所以我不能说它可以在那里无缝地工作。 –

+0

哦,我明白了。你说它可能不适用于旧版本,因为你没有在那里测试它,而不是因为你认为存在问题或者听说有问题? – Snake

您是否尝试过使用?

diag.setIcon(R.drawable.customImg);

您可以在progressDialog 使用的setContentView(图)像 diag.setContentView(R.id.layout_with_image)

或创建的ImageView,并设置为内容视图

ImageView iv=new ImageView(getApplicationContext()); iv.setImageDrawable(R.drawable.your_image); diag.setContentView(iv);

+0

布,图像静态不旋转它,对吧? – Snake

+0

您可以添加旋转动画,就像其他视图 – Adithya