当前位置:   article > 正文

android启动界面的两种方式_android怎么调出手机界面

android怎么调出手机界面

在做启动页面的时候,想实现和微信,qq那样的启动页面,在第一次启动会显示出来,按下返回键回到桌面再次进入就不会显示了,除非程序被杀死。昨天学习到了两种方式实现这个效果,记下

1.设置一个logo页面,添加要显示的Image,在创建的线程中执行跳转操作,延时3秒,代码如下

MainActiviy.java
  1. package com.example.administrator.logopage;
  2. import android.animation.Animator;
  3. import android.animation.AnimatorSet;
  4. import android.animation.TimeInterpolator;
  5. import android.app.Activity;
  6. import android.content.Intent;
  7. import android.content.pm.PackageInfo;
  8. import android.content.pm.PackageManager;
  9. import android.graphics.PixelFormat;
  10. import android.os.Handler;
  11. import android.support.v7.app.AppCompatActivity;
  12. import android.os.Bundle;
  13. import android.view.WindowManager;
  14. import android.view.animation.AlphaAnimation;
  15. import android.view.animation.Animation;
  16. import android.view.animation.AnimationSet;
  17. import android.widget.ImageView;
  18. import android.widget.TextView;
  19. public class MainActivity extends Activity {
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_main);
  24. new Handler().postDelayed(new Runnable() {
  25. public void run() {
  26. /* Create an Intent that will start the Main WordPress Activity. */
  27. Intent mainIntent = new Intent(MainActivity.this, Main2Activity.class);
  28. MainActivity.this.startActivity(mainIntent);
  29. MainActivity.this.finish();
  30. }
  31. }, 3000);
  32. }
  33. }
在跳转到的Main2Activity中添加按键监听
  1. @Override
  2. public boolean onKeyDown(int keyCode, KeyEvent event) {
  3. if (keyCode==KeyEvent.KEYCODE_BACK){
  4. Intent i= new Intent(Intent.ACTION_MAIN); //主启动,不期望接收数据
  5. i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //新的activity栈中开启,或者已经存在就调到栈前
  6. i.addCategory(Intent.CATEGORY_HOME); //添加种类,为设备首次启动显示的页面
  7. startActivity(i);
  8. }
  9. return super.onKeyDown(keyCode, event);
  10. }
按下返回就会跟按下home键操作一致,效果自行尝试。

2.直接在主页中实现,这样可能会好些,代码如下

  1. package com.example.administrator.logopage;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.os.Bundle;
  6. import android.view.KeyEvent;
  7. import android.view.View;
  8. import android.view.animation.AlphaAnimation;
  9. import android.view.animation.Animation;
  10. import android.widget.LinearLayout;
  11. public class Main2Activity extends Activity {
  12. LinearLayout linearLayout;
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main2);
  17. AlphaAnimation animation=new AlphaAnimation(1.0f,1.0f);
  18. animation.setDuration(2000);
  19. linearLayout= (LinearLayout) findViewById(R.id.ll);
  20. linearLayout.setAnimation(animation);
  21. animation.setAnimationListener(new Animation.AnimationListener() {
  22. @Override
  23. public void onAnimationStart(Animation animation) {
  24. linearLayout.setVisibility(View.VISIBLE);
  25. }
  26. @Override
  27. public void onAnimationEnd(Animation animation) {
  28. linearLayout.setVisibility(View.GONE); //隐藏起来,不需要任何布局空间
  29. }
  30. @Override
  31. public void onAnimationRepeat(Animation animation) {
  32. //linearLayout.setVisibility(View.GONE);
  33. }
  34. }
  35. );
  36. }
  37. @Override
  38. public boolean onKeyDown(int keyCode, KeyEvent event) {
  39. if (keyCode==KeyEvent.KEYCODE_BACK){
  40. Intent i= new Intent(Intent.ACTION_MAIN); //主启动,不期望接收数据
  41. i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //新的activity栈中开启,或者已经存在就调到栈前
  42. i.addCategory(Intent.CATEGORY_HOME); //添加种类,为设备首次启动显示的页面
  43. startActivity(i);
  44. }
  45. return super.onKeyDown(keyCode, event);
  46. }
  47. }

在布局文件的前面添加了一个线形布局,放入要设置的启动image,给他设置了一个2秒的动画,监听动画结束时,设置他为隐藏。也为它设置了返回按钮的监听,设置和home功能相同布局文件如下
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout
  3. android:orientation="vertical"
  4. xmlns:android="http://schemas.android.com/apk/res/android"
  5. xmlns:tools="http://schemas.android.com/tools"
  6. android:layout_width="match_parent"
  7. android:layout_height="match_parent"
  8. android:paddingBottom="@dimen/activity_vertical_margin"
  9. android:paddingLeft="@dimen/activity_horizontal_margin"
  10. android:paddingRight="@dimen/activity_horizontal_margin"
  11. android:paddingTop="@dimen/activity_vertical_margin"
  12. tools:context="com.example.administrator.logopage.Main2Activity">
  13. <LinearLayout
  14. android:orientation="vertical"
  15. android:id="@+id/ll"
  16. android:layout_width="match_parent"
  17. android:layout_height="match_parent"
  18. android:background="@mipmap/ic_launcher">
  19. </LinearLayout>
  20. <TextView
  21. android:layout_width="wrap_content"
  22. android:layout_height="wrap_content"
  23. android:text="过来了"/>
  24. </LinearLayout>

效果是显示两秒的背景同,然后文本视图就出来了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/144701
推荐阅读