1.AndroidManifest.xml
<activity android:name=".Loading"
android:theme="@style/MyDialogStyle">
</activity>
2.在styles.xml文件中,如下:
<style name="MyDialogStyle">
<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><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">true</item><!--半透明-->
<item name="android:windowContentOverlay">@null</item><!--内容覆盖 -->
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item><!-- 窗口样式Dialog -->
<item name="android:backgroundDimEnabled">true</item><!--模糊-->
</style>
3.新建loading.xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_centerInParent="true">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="正在登录"
android:layout_marginTop="10dp"
android:textColor="#fff"
android:textSize="20sp" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
4.新建LoadingActivity文件
public class LoadingActivity extends Activity{
public static Handler handler;
public static Runnable runnable;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loading);
string=getIntent().getStringExtra("string");
//这里Handler的postDelayed方法,等待10000毫秒在执行run方法。
//在Activity中我们经常需要使用Handler方法更新UI或者执行一些耗时事件,
//并且Handler中post方法既可以执行耗时事件也可以做一些UI更新的事情,比较好用,推荐使用
handler=new Handler();
runnable=new Runnable(){
public void run(){
//等待10000毫秒后销毁此页面,并提示
LoadingActivity.this.finish();
Toast.makeText(getApplicationContext(), "登陆成功", Toast.LENGTH_SHORT).show();
}
};
handler.postDelayed(runnable,10000);
}
}
5.启动动画
startActivity(new Intent().setClass(Login.this,LoadingActivity.class));//跳转到加载界面
6.手动关闭(释放线程)
handler.removeCallbacks(runnable);