1. 程式人生 > >自定義Dialog之Progress(二)

自定義Dialog之Progress(二)

<item name="android:progressBarStyle">@style/theme.customer_progress_dialog</item>

@style/theme.customer_progress_dialog 是自定義的theme

如果有成功的,希望能分享下,謝謝。

第二種做法是自定義theme, 然後定義一個ProgressDialog:CustomProgressDialog. 在應用裡面就用這個.

自定義theme:

<style name="theme.customer_progress_dialog" parent="@android:style/Theme.Dialog">
         <item name="android:alertDialogStyle">@style/customer_progress_dialog</item>
         <item name="android:progressBarStyleSmall">@style/customer_progress_dialog</item>
         <item name="android:windowBackground">@android:color/transparent</item>
         <item name="android:windowNoTitle">true</item>
         <item name="android:windowIsTranslucent">true</item>
         <item name="android:paddingLeft">10dip</item>  //圖片與左邊距的距離
         <item name="android:paddingRight">10dip</item> //message與右邊距的距離
         <item name="android:textSize">20sp</item>      //message字型的大小
         <item name="android:textColor">@android:color/white</item>  //message字型的顏色
     </style>

@style/customer_progress_dialog 自定義的ProgressDialog style

<style name="customer_progress_dialog" parent="@android:style/Widget.ProgressBar">
          <item name="android:indeterminateDuration">2000</item>
	  <item name="android:fullDark">@drawable/tip2_bg</item>
          <item name="android:topDark">@drawable/tip2_bg</item>
          <item name="android:centerDark">@drawable/tip2_bg</item>
          <item name="android:bottomDark">@drawable/tip2_bg</item>
          <item name="android:fullBright">@drawable/tip2_bg</item>
          <item name="android:topBright">@drawable/tip2_bg</item>
          <item name="android:centerBright">@drawable/tip2_bg</item>
          <item name="android:bottomBright">@drawable/tip2_bg</item>
          <item name="android:bottomMedium">@drawable/tip2_bg</item>
          <item name="android:centerMedium">@drawable/tip2_bg</item>
     </style>

自定義的CustomProgressDialog:
package com.example.android;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;

public class CustomeProgressDialog extends ProgressDialog {

    private Context mContent ;
    
    public CustomeProgressDialog(Context context){
	super(context,R.style.theme_customer_progress_dialog) ;
	mContent = context ;
    }
    
    public CustomeProgressDialog(Context context, int theme) {
	super(context, theme);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setIndeterminateDrawable(mContent.getResources().getDrawable(R.drawable.customer_progess_dialog)) ;
        this.setCanceledOnTouchOutside(false) ;
    }
    
    
    public static CustomeProgressDialog show(Context context,String message){
	 CustomeProgressDialog dialog = new CustomeProgressDialog(context) ;
         dialog.setMessage(message) ;
         dialog.show() ;
         return dialog ;
    }
}

測試程式碼:

CustomeProgressDialog.show(this,"上傳資料中") ;

結果: