2012-07-24 117 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