现在项目不是很忙,所以想不能闲着,研究一下大神们是如何实现等待框中的动画显示的,之前看着效果那么帅,那么酷。比猫画虎的写了写代码。
首先在res文件夹下新建一个anim文件
<?xml version="1.0" encoding="utf-8"?> <animation-list android:oneshot="false" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/app_loading0" android:duration="150"/> <item android:drawable="@drawable/app_loading1" android:duration="150"/> </animation-list>
再建一个layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dialog_view" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:minHeight="60dp" android:minWidth="180dp" android:gravity="center" android:padding="10dp" android:background="@drawable/loading_bg"> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@anim/dialog_animation"/> <TextView android:id="@+id/tv_load" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="数据加载中……" /> </LinearLayout>
接下来开始写一个自定义的dialog
package com.main.view; import com.example.loadingresults.R; import android.app.ProgressDialog; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; public class LoadingView extends ProgressDialog{ private AnimationDrawable aDrawable; private Context context; private String content; private ImageView img; private TextView tv_load; public LoadingView(Context context,String content) { super(context); // TODO Auto-generated constructor stub this.context = context; this.content = content; setCanceledOnTouchOutside(true); } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.viewlayout); img = (ImageView) findViewById(R.id.img); tv_load = (TextView) findViewById(R.id.tv_load); aDrawable = (AnimationDrawable) img.getDrawable(); img.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub aDrawable.start(); tv_load.setText(content); } }); } }