2012-07-24 98 views
4

我正在Custom Progress Dialog上工作。我已经在这个SO问题中设置了它的样式Positionning the spinning wheel in a custom progress dialog我的进度对话框根本没有显示任何动画。当我将background更改为black时,它只显示一个黑盒子。我想要我的进度对话框进行动画制作。自定义进度对话框动画

在活动我做这样的事情

public MyProgressDialog(Context context) { 
     super(context, R.style.NewDialog); 
    } 

和NewDialog是:

<style name="NewDialog" parent="@android:style/Theme.Dialog"> 

    <item name="android:windowFrame">@null</item> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowTitleStyle">@null</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
    <item name="android:backgroundDimEnabled">true</item> 
    <item name="android:width">50dip</item> 
    <item name="android:height">50dip</item> 
    <item name="android:background">@android:color/transparent</item> 

</style> 

任何帮助事先

+0

邮政**的特定代码完整的例子**相关的动画 – JoxTraex 2012-07-24 08:32:57

+0

我复制粘贴代码 2012-07-24 08:34:36

+0

不要让我们必须去另一篇文章去看看代码,仅将** RELEVANT **代码发布到动画。 – JoxTraex 2012-07-24 08:35:39

回答

10
import android.app.ProgressDialog; 
import android.content.Context; 
import android.view.animation.Animation; 

public class MyProgressDialog extends ProgressDialog { 

    public MyProgressDialog(Context context) { 
     super(context,R.style.NewDialog); 

     // TODO Auto-generated constructor stub 
    } 

} 

//资源风格FILE赞赏res-> values-> mydialog.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="NewDialog" parent="@android:style/Theme.Dialog"> 

    <item name="android:windowFrame">@null</item> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowTitleStyle">@null</item> 
    <item name="android:colorBackground">#ffffff</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
    <item name="android:backgroundDimEnabled">true</item> 
    <item name="android:width">600dip</item> 
    <item name="android:height">100dip</item> 
    <item name="android:textColor">#FF0000</item> 

</style> 
</resources> 

//和任何地点使用此代码在应用程序中获取自定义进度对话框

MyProgressDialog pd = new MyProgressDialog(YouActivity.this); 
pd.setMessage("Loading. Please wait..."); 
pd.show(); 

那么有没有在你的代码和我有什么区别,我已经运行您的代码只是为了测试你是否遇到任何问题或不是,但我仍然为你张贴,以便你可以找出问题。

谢谢:)

+0

有一点区别@SALMAN我用对话框扩展MyProgressDialog,在你的情况下它的ProgressDialog。还有一个问题,进度对话框没有居中放置它的盒子,任何线索 – 2012-07-25 06:19:25

+0

在样式文件中更改这两行。 20dip 20dip SALMAN 2012-07-25 07:31:38

+0

Salman:我想要这样的链接http://stackoverflow.com/questions/3225889/how-to -center-progress-indicator-in-progressdialog-easily-when-no-title-text-pa进度指示器不在对话框的中间 – 2012-07-25 07:59:44

1
public class TransparentProgressDialog extends Dialog { 

private ImageView iv; 

public TransparentProgressDialog(Context context, int resourceIdOfImage) { 

    super(context, R.style.TransparentProgressDialog); 
    WindowManager.LayoutParams wlmp = getWindow().getAttributes(); 
    wlmp.gravity = Gravity.CENTER_HORIZONTAL; 
    getWindow().setAttributes(wlmp); 
    setTitle(null); 
    setCancelable(false); 
    setOnCancelListener(null); 
    resourceIdOfImage = R.drawable.loading_spinner_icon; 
    LinearLayout layout = new LinearLayout(context); 
    layout.setOrientation(LinearLayout.VERTICAL); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
    iv = new ImageView(context); 
    iv.setImageResource(resourceIdOfImage); 
    layout.addView(iv, params); 
    addContentView(layout, params); 
    } 

    } 

你将会得到一个动画HERE