Android 启动界面的实现

http://www.oschina.net/question/195301_31378?from=mail-notify



本文转载自:eoeandroid.com

01 package wht.android.loading;
02  
03 import android.content.Context;
04 import android.graphics.Canvas;
05 import android.util.AttributeSet;
06 import android.widget.ImageView;
07  
08 public class LoadingView extends ImageView implements Runnable
09 {
10         private boolean isStop = false;
11          
12         private int[] imageIds;
13         private int index = 0;
14         private int length = 1;
15          
16         public LoadingView(Context context)
17         {
18                 this(context, null);
19         }
20  
21         public LoadingView(Context context, AttributeSet attrs)
22         {
23                 super(context, attrs);
24         }
25          
26         public void setImageIds(int[] imageId)
27         {
28                 this.imageIds = imageId;
29                 if(imageIds != null && imageIds.length > 0)
30                 {
31                         length = imageIds.length;
32                 }
33         }
34          
35                 @Override
36         protected void onDetachedFromWindow()
37         {
38                 // TODO Auto-generated method stub
39                 super.onDetachedFromWindow();
40                 isStop = true;
41         }
42  
43         @Override
44         protected void onDraw(Canvas canvas)
45         {
46                 // TODO Auto-generated method stub
47                 super.onDraw(canvas);
48                 if(imageIds != null && imageIds.length > 0)
49                 {
50                         this.setImageResource(imageIds[index]);
51                 }
52         }
53  
54         @Override
55         public void run()
56         {
57                 while(!isStop)
58                 {
59                         index = ++index % length;
60                         postInvalidate();
61                         try
62                         {
63                                 Thread.sleep(400);
64                         }
65                         catch (InterruptedException e)
66                         {
67                                 e.printStackTrace();
68                         }
69                 }
70         }
71          
72         public void startAnim()
73         {
74                 new Thread(this).start();
75         }
76  
77 }

01 package wht.android.loading;
02  
03 import android.app.Activity;
04 import android.os.Bundle;
05  
06 public class MainActivity extends Activity
07 {
08      
09     private LoadingView main_imageview;
10      
11     @Override
12     public void onCreate(Bundle savedInstanceState)
13     {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.main);
16         main_imageview = (LoadingView)findViewById(R.id.main_imageview);
17         initLoadingImages();
18          
19         new Thread()
20         {
21             @Override
22             public void run()
23             {
24                 main_imageview.startAnim();
25             }
26         }.start();
27          
28     }
29      
30     private void initLoadingImages()
31     {
32         int[] imageIds = new int[6];
33         imageIds[0] = R.drawable.loader_frame_1;
34         imageIds[1] = R.drawable.loader_frame_2;
35         imageIds[2] = R.drawable.loader_frame_3;
36         imageIds[3] = R.drawable.loader_frame_4;
37         imageIds[4] = R.drawable.loader_frame_5;
38         imageIds[5] = R.drawable.loader_frame_6;
39          
40         main_imageview.setImageIds(imageIds);
41     }
42 }

01 <?xml version="1.0" encoding="utf-8"?>
02 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03         android:orientation="vertical" android:layout_width="fill_parent"
04         android:layout_height="fill_parent" android:background="#e1e1e1">
05         <wht.android.loading.LoadingView
06                 android:layout_gravity="center_horizontal"android:layout_height="wrap_content"
07                 android:id="@+id/main_imageview"android:src="@drawable/loader_frame_1"
08                 android:layout_marginTop="190dp"android:layout_width="wrap_content"
09                 ></wht.android.loading.LoadingView>
10  
11 <TextView
12         android:layout_width="wrap_content"
13         android:layout_height="wrap_content"
14         android:text="启动中..."
15         android:layout_marginTop="10dip"
16         android:textColor="#666666"
17         android:layout_gravity="center_horizontal"
18         android:textSize="20sp"
19 />
20 </LinearLayout>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值