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