仿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;}效果图: