当前位置: 首页 > 知识库问答 >
问题:

如何在Android系统中安装应用程序后显示欢迎界面

苍烨然
2023-03-14

我试图在我的应用程序中添加一个欢迎屏幕,它在第一次安装时显示。在我的情况下,欢迎屏幕总是显示在每次应用程序打开...

public class SplashScreen_Activity extends AppCompatActivity {

    private ViewPager viewPager;
    private LinearLayout layoutDot;
    private TextView[] dotstv;
    private int[] layouts;
    private Button btnNext;
    private Button btnSkip;
    private MyPagerAdapter myPagerAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (!isFirstTimeStartApp()) {
            startMainActivity();
            finish();
        }

        setStatusbarTransparent();

        setContentView(R.layout.activity_splash_screen_);

        viewPager = findViewById(R.id.view_pager);
        layoutDot =(LinearLayout) findViewById(R.id.dotlayout);
        btnNext =(Button) findViewById(R.id.btn_next);
        btnSkip =(Button) findViewById(R.id.btn_skip);
        btnSkip.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startMainActivity();
            }
        });

        btnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int currentpage = viewPager.getCurrentItem() + 1;
                if (currentpage < layouts.length) {
                    viewPager.setCurrentItem(currentpage);
                } else {
                    startMainActivity();
                }
            }
        });
        layouts = new int[]{R.layout.slider_1, R.layout.slider_2, R.layout.slider_3};
        myPagerAdapter = new MyPagerAdapter(layouts, getApplicationContext());
        viewPager.setAdapter(myPagerAdapter);
        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                if (position == layouts.length - 1) {
                    btnNext.setText("START");
                    btnSkip.setVisibility(View.GONE);
                } else {
                    btnNext.setText("NEXT");
                    btnSkip.setVisibility(View.VISIBLE);
                }

                setDotStatus(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        setDotStatus(0);
    }

    private boolean isFirstTimeStartApp() {
        SharedPreferences ref = getApplicationContext().getSharedPreferences("IndroSliderApp", Context.MODE_PRIVATE);
        return ref.getBoolean("Flag", true);
    }

    private void setFirstTimeStartStatus(boolean stt) {
        SharedPreferences ref = getApplicationContext().getSharedPreferences("IndroSliderApp", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = ref.edit();
        editor.putBoolean("FirstTimeStartFlag", stt);
        editor.commit();
    }

    private void setDotStatus(int page) {
        layoutDot.removeAllViews();
        dotstv = new TextView[layouts.length];
        for (int i = 0; i < dotstv.length; i++) {
            dotstv[i] = new TextView(this);
            dotstv[i].setText(Html.fromHtml("&#8226;"));
            dotstv[i].setTextSize(30);
            dotstv[i].setTextColor(Color.parseColor("#a9b4bb"));
            layoutDot.addView(dotstv[i]);
        }
        if (dotstv.length > 0) {
            dotstv[page].setTextColor(Color.parseColor("#ffffff"));
        }
    }

    private void startMainActivity() {
        setFirstTimeStartStatus(false);
        startActivity(new Intent(SplashScreen_Activity.this, MainActivity.class));
        finish();
    }

    private void setStatusbarTransparent() {
        if (Build.VERSION.SDK_INT >= 21) {
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
            Window window = getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.setStatusBarColor(Color.TRANSPARENT);
        }
    }
}

共有1个答案

管玉堂
2023-03-14

尝试一下,在onCreate()方法中,在if条件后面添加下面的代码

    if (!isFirstTimeStartApp()) {
                startMainActivity();
                finish();
            }else{
            setFirstTimeStartStatus(false);
        }

在setFirstTimeStartStatus()方法中,将代码更改为

 private void setFirstTimeStartStatus(boolean stt) {
        SharedPreferences ref = getApplicationContext().getSharedPreferences("IndroSliderApp", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = ref.edit();
        editor.putBoolean("Flag", stt);
        editor.commit();
    }
 类似资料:
  • 本文向大家介绍Android 应用的欢迎界面实现代码,包括了Android 应用的欢迎界面实现代码的使用技巧和注意事项,需要的朋友参考一下 本文详细描述了如何实现如下图中的微信启动界面. 该类启动界面的特点是在整个Application的生命周期里, 它只会出现在第一次进入应用时, 即便按回退键到桌面之后. 使用该类启动界面的应用还有: QQ, QQ音乐, 网易云音乐和微博等等. 知识要点: An

  • 1.1 安装 faygo 1.1.1 安装要求 Go Version ≥1.8 1.1.2 安装 方式一 源码下载 go get -u -v github.com/henrylee2cn/faygo 方式二 部署工具 (Go to fay) go get -u -v github.com/henrylee2cn/fay fay command [arguments] The com

  • 我想向从Play商店安装的应用程序发送欢迎消息通知。 例: 谢谢你安装这个应用程序并与你的朋友分享,如果你喜欢我的android应用程序。 可以做到这一点吗?

  • 本文向大家介绍Android仿小红书欢迎界面,包括了Android仿小红书欢迎界面的使用技巧和注意事项,需要的朋友参考一下 1,觉得小红书的欢迎界面感觉很漂亮,就想来学习学习一下来实现类似于这种效果 。 原效果图如下: 2,根据效果我们来一点点分析 第一步:首先看一下我们的主界面布局文件视图效果如下: main_activity.xml文件代码如下: 可以看到我们主界面的布局文件主要是两个控件,一

  • 本文向大家介绍Android实现闪屏欢迎界面,包括了Android实现闪屏欢迎界面的使用技巧和注意事项,需要的朋友参考一下 闪屏:在打开App时,展示,持续数秒后,自动关闭,进入另外的一个界面,SplashActivity跳转到MainActivity Android中有三种实现方法 xml代码: (1)利用Handler对象的postDelayed方法可以实现,传递一个Runnable对象和一个

  • 问题内容: 我想以特定尺寸在Android应用程序中显示图片。我该怎么做?请指导我?还有一件事,我想从SD卡中获得该图像。所以请帮帮我。 提前致谢。 问题答案: 首先,您需要创建一个imageview。 创建布局参数以在布局上添加imageview 然后获取您的图像路径 在ImageView上设置图像 获取您要添加的布局 将视图添加到布局