<ProgressBar android:id="@+id/progressBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@android:color/transparent" android:indeterminateDrawable="@drawable/progressbar" />
progressbar.xml
<?xml version="1.0" encoding="utf-8"?> <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360" > <shape android:innerRadiusRatio="3" android:shape="ring" android:thicknessRatio="8" android:useLevel="false" > <gradient android:centerColor="@color/title_color" android:centerY="0.50" android:endColor="@color/title_color" android:startColor="@color/transparent" android:type="sweep" android:useLevel="false" /> </shape> </animated-rotate>
全部代码
<style name="Animation.Dialog"> <item name="windowEnterAnimation">@anim/dialog_enter</item> <item name="windowExitAnimation">@anim/dialog_exit</item> </style>
<!-- 更多登录等待框的样式 --> </style> <style name="loadingDialogStyle" parent="android:Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowContentOverlay">@null</item> <!-- 对话框是否有遮盖 --> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:backgroundDimEnabled">true</item> </style>
public class ThirdLoginLoadingDialog extends Dialog { private TextView tv; public ThirdLoginLoadingDialog(Context context) { super(context, R.style.loadingDialogStyle); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_thirdlogin_dialog_loading); tv = (TextView) this.findViewById(R.id.tv); tv.setText("正在登录..."); LinearLayout linearLayout = (LinearLayout) this .findViewById(R.id.LinearLayout); linearLayout.getBackground().setAlpha(0); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" android:gravity="center" android:orientation="vertical" > <LinearLayout android:id="@+id/LinearLayout" android:layout_width="160dp" android:layout_height="160dp" android:background="@drawable/thirdlogin_dialog_bg" android:gravity="center" android:orientation="vertical" > <ProgressBar android:id="@+id/progressBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@android:color/transparent" android:indeterminateDrawable="@drawable/progressbar" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:paddingTop="10dp" android:textColor="@android:color/white" /> </LinearLayout> </LinearLayout>
最后 在主活动中加上
private ThirdLoginLoadingDialog dialog; dialog = new ThirdLoginLoadingDialog(this);
dialog.setCanceledOnTouchOutside(false);//防止触摸其他地方,程序报错
dialog.show();
dialog.dismiss();
原文:http://www.cnblogs.com/520-1314/p/5066518.html