转自:http://menjoy.iteye.com/blog/1255291
启动界面的效果图:
启动界面
主要的实现类LoadingView :
- package wht.android.loading;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.util.AttributeSet;
- import android.widget.ImageView;
- public class LoadingView extends ImageView implements Runnable
- {
- private boolean isStop = false;
- private int[] imageIds;
- private int index = 0;
- private int length = 1;
- public LoadingView(Context context)
- {
- this(context, null);
- }
- public LoadingView(Context context, AttributeSet attrs)
- {
- super(context, attrs);
- }
- public void setImageIds(int[] imageId)
- {
- this.imageIds = imageId;
- if(imageIds != null && imageIds.length > 0)
- {
- length = imageIds.length;
- }
- }
- @Override
- protected void onDetachedFromWindow()
- {
- // TODO Auto-generated method stub
- super.onDetachedFromWindow();
- isStop = true;
- }
- @Override
- protected void onDraw(Canvas canvas)
- {
- // TODO Auto-generated method stub
- super.onDraw(canvas);
- if(imageIds != null && imageIds.length > 0)
- {
- this.setImageResource(imageIds[index]);
- }
- }
- @Override
- public void run()
- {
- while(!isStop)
- {
- index = ++index % length;
- postInvalidate();
- try
- {
- Thread.sleep(400);
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
- }
- public void startAnim()
- {
- new Thread(this).start();
- }
- }
MainActivity:
- package wht.android.loading;
- import android.app.Activity;
- import android.os.Bundle;
- public class MainActivity extends Activity
- {
- private LoadingView main_imageview;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- main_imageview = (LoadingView)findViewById(R.id.main_imageview);
- initLoadingImages();
- new Thread()
- {
- @Override
- public void run()
- {
- main_imageview.startAnim();
- }
- }.start();
- }
- private void initLoadingImages()
- {
- int[] imageIds = new int[6];
- imageIds[0] = R.drawable.loader_frame_1;
- imageIds[1] = R.drawable.loader_frame_2;
- imageIds[2] = R.drawable.loader_frame_3;
- imageIds[3] = R.drawable.loader_frame_4;
- imageIds[4] = R.drawable.loader_frame_5;
- imageIds[5] = R.drawable.loader_frame_6;
- main_imageview.setImageIds(imageIds);
- }
- }
布局文件main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical" android:layout_width="fill_parent"
- android:layout_height="fill_parent" android:background="#e1e1e1">
- <wht.android.loading.LoadingView
- android:layout_gravity="center_horizontal" android:layout_height="wrap_content"
- android:id="@+id/main_imageview" android:src="@drawable/loader_frame_1"
- android:layout_marginTop="190dp" android:layout_width="wrap_content"
- ></wht.android.loading.LoadingView>
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="启动中..."
- android:layout_marginTop="10dip"
- android:textColor="#666666"
- android:layout_gravity="center_horizontal"
- android:textSize="20sp"
- />
- </LinearLayout>