android程序启动时欢迎画面不显示,求助

android程序启动时欢迎画面不显示,求助,第1张

mHandlersendEmptyMessageAtTime(GOTO_MAIN_ACTIVITY, 5000);// 3秒跳转这句话注释掉,你的欢迎界面应该可以显示并停留在那。我看着应该是你的消息处理不对。

创建一个Splash activity

对应一个xml,我直接把作为背景处理,这样可以直接将裁剪好,不用另外处理。

去Androidmanife设置最先加载

去style里去除titlebar实现全屏效果

1 import androidappActivity;

2 import androidcontentIntent;

3 import androidcontentSharedPreferences;

4 import androidcontentSharedPreferencesEditor;

5 import androidosBundle;

6 import androidosHandler;

7

8 / 欢迎界面 /

9 public class WelcomeAct extends Activity {

10

11 private boolean isFirstIn = false;

12 private static final int TIME = 2000;

13 private static final int GO_HOME = 1000;

14 private static final int GO_GUIDE = 1001;

15

16 private Handler mHandler = new Handler() {

17 public void handleMessage(androidosMessage msg) {

18 switch (msgwhat) {

19 // 跳入主界面

20 case GO_HOME:

21 goHome();

22 break;

23 // 跳入引导页

24 case GO_GUIDE:

25 goGuide();

26 break;

27 }

28 };

29 };

30

31 @Override

32 protected void onCreate(Bundle savedInstanceState) {

33 superonCreate(savedInstanceState);

34 setContentView(Rlayoutwelcome);

35 init();

36 }

37

38 private void init() {

39 SharedPreferences perPreferences = getSharedPreferences("jike",

40 MODE_PRIVATE);

41 isFirstIn = perPreferencesgetBoolean("isFirstIn", true);

42 if (!isFirstIn) {

43 mHandlersendEmptyMessageDelayed(GO_HOME, TIME);

44 } else {

45 mHandlersendEmptyMessageDelayed(GO_GUIDE, TIME);

46 Editor editor = perPreferencesedit();

47 editorputBoolean("isFirstIn", false);

48 editorcommit();

49 }

50 }

51

52 private void goHome() {

53 Intent i = new Intent(WelcomeActthis, MainActivityclass);

54 startActivity(i);

55 finish();

56 }

57

58 private void goGuide() {

59 Intent i = new Intent(WelcomeActthis, Guideclass);

60 startActivity(i);

61 finish();

62 }

63

64 }

1 import javautilArrayList;

2 import javautilList;

3 import androidappActivity;

4 import androidcontentIntent;

5 import androidosBundle;

6 import androidsupportv4viewViewPager;

7 import androidsupportv4viewViewPagerOnPageChangeListener;

8 import androidviewLayoutInflater;

9 import androidviewView;

10 import androidviewViewOnClickListener;

11 import androidwidgetButton;

12 import androidwidgetImageView;

13

14 / 引导页 /

15 public class Guide extends Activity implements OnPageChangeListener {

16

17 private ViewPager vp;

18 private ViewPagerAdapter vpAdapter;

19 private List<View> views;

20 private ImageView[] dots;

21 private int[] ids = { Ridiv1, Ridiv2, Ridiv3 };

22 private Button start_btn;

23

24 @Override

25 protected void onCreate(Bundle savedInstanceState) {

26 superonCreate(savedInstanceState);

27 setContentView(Rlayoutguide);

28 initViews();

29 initDots();

30 }

31

32 private void initViews() {

33 LayoutInflater inflater = LayoutInflaterfrom(this);

34

35 views = new ArrayList<View>();

36 viewsadd(inflaterinflate(Rlayoutone, null));

37 viewsadd(inflaterinflate(Rlayouttwo, null));

38 viewsadd(inflaterinflate(Rlayoutthree, null));

39

40 vpAdapter = new ViewPagerAdapter(views, this);

41 vp = (ViewPager) findViewById(Ridviewpager);

42 vpsetAdapter(vpAdapter);

43 // 下标从0开始,所以第三个页面是get(2)。

44 start_btn = (Button) viewsget(2)findViewById(Ridstart_btn);

45 start_btnsetOnClickListener(new OnClickListener() {

46 @Override

47 public void onClick(View arg0) {

48 Intent i = new Intent(Guidethis, MainActivityclass);

49 startActivity(i);

50 finish();

51 }

52 });

53 vpsetOnPageChangeListener(this);

54 }

55

56 / 循环设置点 /

57 private void initDots() {

58 dots = new ImageView[viewssize()];

59 for (int i = 0; i < viewssize(); i++) {

60 dots[i] = (ImageView) findViewById(ids[i]);

61 }

62 }

63

64 @Override / 滑动状态改变的时候 /

65 public void onPageScrollStateChanged(int arg0) {

66 // TODO Auto-generated method stub

67 }

68

69 @Override / 当页面被滑动时候调用 /

70 public void onPageScrolled(int arg0, float arg1, int arg2) {

71 // TODO Auto-generated method stub

72 }

73

74 @Override / 当前新的页面被选中时调用 /

75 public void onPageSelected(int arg0) {

76 for (int i = 0; i < idslength; i++) {

77 if (arg0 == i) {

78 // 亮点

79 dots[i]setImageResource(Rdrawablelogin_point_selected);

80 } else {

81 // 暗点

82 dots[i]setImageResource(Rdrawablelogin_point);

83 }

84 }

85 }

86

87 }

1 <xml version="10" encoding="utf-8">

2 <RelativeLayout xmlns:android=">

这个界面主要的作用有:

这个界面是为了让app有更好的体验,不会让用户感觉 太突兀了,所以现在app市场包括ios的应用基本都是有欢迎界面的。

这个界面一般称为启动页面,在android开发中,开发者可以设定在该界面的停留时间,从而可以在后台进行一些初始化的工作的。

 启动界面Splash Screen在应用程序是很常用的,往往在启动界面中显示产品Logo、公司Logo或者开发者信息,如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。

Android 应用程序创建一个启动界面Splash Screen非常简单。比如创建一个工程MySample,主Acitity就叫MySample,创建另一个Activity叫 SplashScreen,用于显示启动界面,资源文件为splashxml。至于如何制作SplashSceen界面,这不是本文章要讨论的东西,就此略过。

SplashScreen的代码如下:

package comctoofandroid;

import androidappActivity;

import androidcontentIntent;

import androidosBundle;

import androidviewMotionEvent;

public class SplashScreen extends Activity {

protected boolean _active = true;

protected int _splashTime = 5000;

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutsplash);

Thread splashTread = new Thread() {

@Override

public void run() {

try {

int waited = 0;

while(_active && (waited < _splashTime)) {

sleep(100);

if(_active) {

waited += 100;

}

}

} catch(InterruptedException e) {

// do nothing

} finally {

finish();

// 启动主应用

startActivity(new Intent("comctoofandroidMySampleMyApp"));

stop();

}

}

};

splashTreadstart();

}

@Override

public boolean onTouchEvent(MotionEvent event) {

if (eventgetAction() == MotionEventACTION_DOWN) {

_active = false;

}

return true;

}

}

然后在AndroidMainfestxml中修改代码如下:

<xml version="10" encoding="utf-8">

<manifest xmlns:android=""

package="comctoofandroid"

android:versionCode="1"

android:versionName="10">

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name="SplashScreen"

android:label="@string/app_name">

<intent-filter>

<action android:name="androidintentactionMAIN" />

<category android:name="androidintentcategoryLAUNCHER" />

</intent-filter>

</activity>

<activity android:name="MyApp">

<intent-filter>

<action android:name=" comctoofandroid MySampleMyApp " />

<category android:name="androidintentcategoryDEFAULT" />

</intent-filter>

</activity>

</application>

<uses-sdk android:minSdkVersion="4" />

</manifest>

在这里负责注册两个活动。把负责管理启动界面Splash Screen的活动Activity作为应用程序的主活动,然后在SplashScreen中负责启动MyApp。

另:

很多应用都会有一个启动界面。欢迎画面慢慢隐现,然后慢慢消隐。实现这种效果的方法有两种(暂时只发现两种)

1、使用两个Activity,程序启动时候load第一张Activity,然后由tick触发N秒钟后startActivity另外一张Activity。

2、使用一个Activity,可以用到Viewgone() 这个方法。把Acitivity的某些元素移除。

Java代码

public class Splash extends Activity {

private final int SPLASH_DISPLAY_LENGHT = 3000; //延迟三秒

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutsplash);

new Handler()postDelayed(new Runnable(){

@Override

public void run() {

Intent mainIntent = new Intent(Splashthis,Mainclass);

SplashthisstartActivity(mainIntent);

Splashthisfinish();

}

}, SPLASH_DISPLAY_LENGHT);

}

}

当然可以再Splash中加入动画效果。

以上就是关于android程序启动时欢迎画面不显示,求助全部的内容,包括:android程序启动时欢迎画面不显示,求助、一、Android App启动图启动界面的简单实现、android怎么从引导页进入主页等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10208875.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存