`
qq986945193
  • 浏览: 93905 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Android】android开发之splash闪屏页的四种实现方式,启动页的实现教程。

 
阅读更多
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193

新浪微博:http://weibo.com/mcxiaobing

首先给大家看一下今天实现的效果图(其他三种都差不太多底下详细介绍):


这个启动页实现的方法是四种,两种是利用handler,其它两种是利用了动画的方式。

具体给大家贴一下源代码吧,很简单。

布局文件就一个图片,mainfest添加上我们的类就行了。

java实现代码如下:

package xiaobingsplashmoremethod.qq986945193.xiaobingsplashmoremethod.xiaobingsplashmoremethod;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.widget.LinearLayout;


/**
 * @author :程序员小冰
 * @新浪微博 :http://weibo.com/mcxiaobing
 * @GitHub:https://github.com/QQ986945193
 * @CSDN博客: http://blog.csdn.net/qq_21376985
 * @交流Qq :986945193
 * 类名:splash闪屏页的四种实现方式
 */
public class SplashActivity extends Activity {
    private LinearLayout ll_splash;
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 1:
                    startMainActivity();
                    break;
                case 2:
                    startMainActivity();
                    break;
            }
        }
    };

    @SuppressLint("WrongViewCast")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        ll_splash = (LinearLayout) findViewById(R.id.ll_splash);
        /**
         * 第一种方法,利用handler自带的sendEmptyMessageDelayed()方法。
         */
        mHandler.sendEmptyMessageDelayed(1, 2000);

        /**
         * 第二种方法,其实实现原理和第一种是一样的,
         */
//
//        Message message = new Message();
//        message.what = 2;
//        mHandler.sendMessageDelayed(message, 2000);

        /**
         * 第三种方法,利用动画实现
         */
//        startAdimThree();
        /**
         * 第四种方法,利用动画实现
         */
//        StartAniFour();

    }

    private void StartAniFour() {
        AlphaAnimation start = new AlphaAnimation(0.0f, 1.0f);
        start.setDuration(1000);
        // findViewById(R.id.splash).startAnimation(start);
        start.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                startMainActivity();
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
        ll_splash.startAnimation(start);
    }


    /**
     * 开启动画
     */
    private void startAdimThree() {
        // 动画集合
        AnimationSet set = new AnimationSet(false);
        // 旋转动画
        RotateAnimation rotateAnimation = new RotateAnimation(180, 180,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
                0.5f);
        rotateAnimation.setDuration(2000);// 设置动画时间
        rotateAnimation.setFillAfter(true);// 保持动画状态

        // 缩放动画
        ScaleAnimation scaleAnimation = new ScaleAnimation(0, 1, 0, 1,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
                0.5f);
        scaleAnimation.setDuration(2000);// 设置动画时间
        scaleAnimation.setFillAfter(true);// 保持动画状态

        // 渐变动画

        AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
        alphaAnimation.setDuration(2000);
        alphaAnimation.setFillAfter(true);// 保持动画状态

        // 添加动画
        set.addAnimation(rotateAnimation);
        set.addAnimation(scaleAnimation);
        set.addAnimation(alphaAnimation);
        /*
         * 设置动画的监听事件,当动画运行完成后,启动新的activity
		 */
        set.setAnimationListener(new Animation.AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub
                startMainActivity();
            }
        });

        ll_splash.startAnimation(set);

    }


    /**
     * 跳转到主界面
     */
    private void startMainActivity() {
        startActivity(new Intent(SplashActivity.this, MainActivity.class));
        finish();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
//        mHandler.removeMessages(1);
//        mHandler.removeMessages(2);
    }
}
(AndroidStudio版)github下载地址:
https://github.com/QQ986945193/XiaoBingSplashMoreMethod

分享到:
评论

相关推荐

    Android 实现闪屏页+功能引导页

    在Android应用开发中,"闪屏页"(Splash Screen)和"功能引导页"(Feature Onboarding)是常见的用户界面元素,它们用于提升用户体验并帮助用户更好地理解和使用应用。本篇将详细介绍如何在Android平台上实现这两种...

    Android进阶篇之引导页系列之Splash闪屏Log

    本篇文章将深入探讨如何在Android中实现Splash闪屏,并关注其背后的日志记录(Log)机制,这对于调试和优化应用至关重要。 首先,我们要明白Splash闪屏的基本结构。一个简单的Splash页面通常包含一个背景图片、应用...

    Android闪屏页面实现Demo

    在Android应用开发中,"闪屏页面"(也称为启动页或Splash Screen)通常用于展示品牌形象、加载应用程序数据,或者给用户带来一种视觉上的过渡效果。本教程将深入讲解如何在Android Studio环境下创建一个基本的...

    android splash 闪屏界面 !

    在Android应用开发中,"android splash 闪屏界面 !"是一个常见的需求,它是用户打开应用程序时首先看到的短暂展示页面,通常包含应用的LOGO、品牌信息或者简单的动画效果。这个界面给用户一种应用正在加载的视觉反馈...

    android实现闪屏广告+视屏引导页demo

    在Android应用开发中,"闪屏广告+视频引导页"是一种常见的用户体验设计,用来吸引用户的注意力,展示品牌信息,或者引导用户了解应用的主要功能。本文将深入探讨如何在Android平台上实现这种功能,主要关注两个核心...

    android游戏中logo闪屏的简单实现

    在Android游戏开发中,为了给玩家提供一个良好的启动体验,开发者通常会在游戏启动时加入一个logo闪屏(Splash Screen)的界面。这个界面通常展示游戏的logo、版权信息或者简单的动画效果,它不仅提升了游戏的专业感...

    android闪屏过渡的实现

    在Android应用开发中,"闪屏页"(Splash Screen)是一种常见的开场动画,它通常用于展示品牌标识、加载应用资源或者进行初始化操作。本篇文章将详细介绍如何实现具有淡出和上移过渡效果的闪屏页。 一、创建闪屏页...

    仿网易新闻闪屏页实现

    在IT行业中,闪屏页(Splash Screen)通常用于应用程序启动时展示的品牌标识或广告,它在用户打开应用的第一时间给予视觉冲击,提升品牌形象。本项目是关于如何仿照网易新闻的闪屏页进行实现,同时确保闪屏页与广告...

    android实现闪屏

    在Android应用开发中,"闪屏页"(Splash Screen)是一种常见的设计,它通常作为应用程序启动时的第一个界面,展示品牌信息、加载资源或者进行初始化操作。实现闪屏页的效果涉及多个知识点,包括布局设计、动画处理、...

    一个简单的android闪屏

    在Android应用开发中,"闪屏页"(Splash Screen)是一种常见的开场动画或加载界面,它的目的是在应用程序启动时提供一个吸引用户注意力的视觉效果,同时进行必要的后台初始化工作。本教程将详细介绍如何创建一个简单...

    android实现Splash闪屏效果示例

    在Android应用开发中,Splash屏幕(也称为启动页或引导页)是一种常见的设计,用于展示品牌标识、加载应用数据或执行初始化操作。本篇文章将详细解释如何在Android中实现一个基本的Splash闪屏效果,以及涉及到的关键...

    Android实现闪屏页效果

    在Android应用开发中,闪屏页(Splash Screen)通常用于展示应用的品牌标识、启动动画或者进行一些初始化操作。本文将详细介绍如何在Android中实现闪屏页的效果,包括页面布局、逻辑处理以及主题设置。 首先,我们...

    android 闪屏动画 DEMO

    在Android应用开发中,"闪屏页"(Splash Screen)是一种常见的设计,它通常在应用程序启动时展示,显示品牌LOGO或一些简单的动画效果,给用户带来更好的视觉体验。本DEMO主要展示了如何在Android中实现这样的功能。...

    Android应用源码之闪屏加退出提示应用.rar

    在Android应用开发中,闪屏页(Splash Screen)和退出提示是常见的用户界面设计元素,它们为用户提供良好的启动体验和退出确认,以增加应用的专业感和用户体验。本压缩包文件包含了一个实现这两种功能的Android应用...

    闪屏页及引导页

    在移动应用开发中,"闪屏页"(Splash Screen)和"引导页"(Onboarding Screen)是常见的设计元素,尤其在Android平台上尤为常见。它们主要用于提升品牌形象、介绍产品功能或者提供用户初次使用的引导。本篇文章将...

    Android应用源码之完美! 闪屏+引导页 功能全面!源码详细注释!.zip

    在Android应用开发中,"闪屏页"(Splash Screen)和"引导页"(Onboarding Screen)是常见的设计元素,用于提升用户体验并介绍应用的主要功能。这个名为"Android应用源码之完美!闪屏+引导页 功能全面!源码详细注释...

    安卓Android源码——完美!闪屏+引导页功能全面!源码详细注释!.zip

    这份压缩包文件包含的是一个完整的安卓Android应用的源代码,主要功能是实现闪屏(Splash Screen)和引导页(Guidance Pages)。闪屏通常用于应用启动时的品牌展示或加载准备,而引导页则用于初次使用时向用户介绍...

    Android应用源码之闪屏及第一次进入的介绍界面.zip

    在Android应用开发中,"闪屏页"(Splash Screen)和"首次进入的介绍界面"是常见的用户体验设计元素。它们通常用于展示应用的品牌形象、加载应用程序的必要资源,或者向新用户介绍应用的主要功能和操作方式。下面我们...

    android闪屏页广告倒计时

    在Android应用开发中,"闪屏页"(Splash Screen)是一种常见的设计,它在应用程序启动时首先显示,通常用于展示品牌标识、加载资源或者显示广告。在这个特定的案例中,"android闪屏页广告倒计时"是一个实现简单广告...

    在服务器端更新闪屏页图片

    在Android平台中,我们通常会在应用启动时显示一个闪屏页(Splash Screen),它通常包含品牌标识、应用程序图标或者一些简洁的设计元素。在本案例中,我们将探讨如何在服务器端更新这些闪屏页图片,并在不同网络环境...

Global site tag (gtag.js) - Google Analytics