Android 启动界面的实现(转载)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

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();

        }

}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

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);

    }

}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<?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>

时间: 2024-10-12 12:45:10

Android 启动界面的实现(转载)的相关文章

android启动界面

启动界面的效果图: 实现的原理:在一个线程中让几幅图片进行循环显示,实现了动画的效果. 主要的实现类LoadingView是自定义控件,继承了ImageView,实现了Runnable接口 : package wht.android.loading; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.widget.Imag

Android 设置启动界面

启动界面的意义是为了让后台处理耗时的复杂工作,当工作处理完成后,即可进入主界面.相比让用户等待布局加载完成,使用一张图片作为启动背景,会带来更好的体验. 首先,需要建立一个简单的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:lay

Android基础之——startActivityForResult启动界面并返回数据,上传头像

在android应用的开发过程中,经常会出现启动一个界面后填写部分内容后带着数据返回启动前的界面,最典型的应用就是登录过程.在很多应用程序的模块中,都有"我的"这个模块,在未登录状态下点击其中的某一项,就会弹出登录界面,登录完成后回到我的界面,会显示一些登录后的数据,这个功能的实现就要用到startActivityForResult. 下面通过一个小demo来说明一下startActivityForResult的使用,以及在实际开发中的一些应用. demo的效果图如下: 主界面布局:

开源中国 OsChina Android 客户端源码分析(1)启动界面 app_start

1启动界面的布局文件为app_start.xml ,对应的类文件为net.oschina.app 包下的AppStart.java. 2对于布局文件而言,因为只显示一张主题图片,因此布局简单直接设置背景图片.因为是启动界面,启动时会有短暂的卡顿,对于用户而言体验不好,因此在配置文件中自定义了style ,黑色 无标题 全屏(为什么选黑色的呢?是不是因为背景图图片是白的,衬托的更亮白呢?^_^).设置了背景图片和无标题 <style name="Theme.AppStartLoad"

Android仿iOS启动界面

第一部 -------------------------------------------------------------------------------- [问题] 由于Activity只能到onResume时,才能展示到前台,所以,如果为MainActivity设置背景的话,无论onCreate-onResume速度多快,都会出现短暂的带title的空页,这是我们不想要的. [方法] 只需在AndroidManifest.xml为你的<application>加上theme属性

Android 启动APP时黑屏白屏的三个解决方案(转载)

你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下.这里先了解一下为什么会出现这样的现象,其实很简单,简历一个简单的例子就可以理解了. 其实,黑屏或者白屏这里并不是不正常,而是还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗口背景.代码如下,可以自己写个小demo就理解了. 1 2 3 4 5 6 7 8 9 10 11 12 @Override protected

android 可用内存的阀值--转载

理论 Android采取了一种有别于Linux的进程管理策略,有别于Linux的在进程活动停止后就结束该进程,Android把这些进程都保留在内存中, 直到系统需要更多内存为止.这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,并且当用户再次激活这些进程时,提升了进程的启动速度. 那Android什么时候结束进程?结束哪个进程呢?之前普遍的认识是Android是依据一个名为LRU(last recently used 最近使用过的程序)列表,将程序进行排序,并结束最早的进程.XDA的楼

App启动界面效果设计

转载请标明出处:http://blog.csdn.net/u012637501/article/details/45746617 每个Android应用启动之后都会出现一个Splash启动界面,大多数的Splash界面都是会等待一定时间,然后切换到下一个界面.但如果app启动时间过长,可使用启动界面让用户耐心等待这段枯燥的时间.Splash界面一般用于显示产品的LOGO.产品名称.版本信息等,也可以完成对系统状况的检测,如网络是否连通.电源是否充足.检测新版本等,也可以预先加载相关数据.启动界面

十八、Android引导界面

一.所需素材 很有必要整理一下,里面附带友盟的社会化分享组件,我就不去掉了. 二.代码 import com.umeng.update.UmengUpdateAgent; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import an