仿QQ登记圆形进度对话框.

仿QQ注册圆形进度对话框...

1、styles.xml

     <style name="dialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowIsFloating">true</item>
        <!-- 设置未浮动窗口 -->
        <item name="android:windowFrame">@null</item>
        <!-- 设置无边框 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 设置无标题 -->
        <item name="android:windowBackground">@color/sc_transparent</item>
        <!-- 设置完全透明 -->
        <item name="android:backgroundDimEnabled">true</item>
        <!-- 设置屏幕变暗 -->
    </style>


 

<color name="sc_transparent">#00ffffff</color>


2.dialog_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:gravity="center_horizontal"
    android:background="@drawable/shape_dialog"
    android:paddingTop="15dp"
    android:paddingBottom="15dp"
    android:paddingLeft="30dp"
    android:paddingRight="30dp">

	        
 		 <ProgressBar 
 		        android:layout_width="wrap_content"
 		        android:layout_height="wrap_content"
	            android:indeterminateDrawable="@drawable/progressbar"/>
 		 
         <TextView
             android:id="@+id/tvLoad"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:paddingTop="5dp"
             android:textSize="20.0sp"
             android:textColor="#ffffffff" />
	    

</LinearLayout>


drawable中shape_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="8.0dip"/>
    <solid android:color="#ff333333"/>
</shape>


progressbar.xml

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
        android:pivotX="50%" android:pivotY="50%"
        android:fromDegrees="0" android:toDegrees="360">
    <shape
        android:shape="ring"
        android:innerRadiusRatio="3"
        android:thicknessRatio="8"
        android:useLevel="false">
    <gradient
                android:type="sweep"
                android:useLevel="false"
                android:startColor="#ffffffff"
                android:centerColor="#ff808080"   
                android:centerY="0.45"
                android:endColor="#ff000000"/>
    </shape>
</rotate> 


方法:

public static Dialog creatRequestDialog(final Context context, String tip) {

		final Dialog dialog = new Dialog(context, R.style.dialog);
		dialog.setContentView(R.layout.dialog_layout);
		Window window = dialog.getWindow();		
		WindowManager.LayoutParams lp = window.getAttributes();
		int width = CommonUtils.getScreenWidth(context);
		//lp.width = (int) (0.6 * width);

		TextView titleTxtv = (TextView) dialog.findViewById(R.id.tvLoad);
	
		titleTxtv.setText(tip);
		return dialog;
	}

效果图:
仿QQ登记圆形进度对话框.