欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 应用启动欢迎界面广告的实现实例

程序员文章站 2023-12-04 13:38:16
android 应用启动欢迎界面广告 0.写在前面 在这篇教程中来实现一个类似于微信的的延迟3秒再进入主界面的效果。 1.项目准备 先新建一个空的android项目...

android 应用启动欢迎界面广告

0.写在前面

在这篇教程中来实现一个类似于微信的的延迟3秒再进入主界面的效果。

1.项目准备

先新建一个空的android项目。里面只自带一个mainactivity,首先我们再新建一个activity叫做welcomeactivity继承自activity。

activity代码如下:

//package在此省略,根据实际自行添加

import android.app.activity;
import android.os.bundle;
import android.support.annotation.nullable;

/**
 * created by hupeng on 2016/9/21.
 */
public class welcomeactivity extends activity {
  @override
  protected void oncreate(@nullable bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_welcome);
  }
}

布局文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical"
       android:layout_width="match_parent"
       android:layout_height="match_parent">

  <imageview
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/imageview"
      android:layout_gravity="center_horizontal"
      android:src="@mipmap/welcome"/>
      <!--android src属性指定imageview里面要显示的资源文件的来源路径,也就是在欢迎界面显示的图片,在这里我已经预先上传了一张图片了-->
</linearlayout>

修改清单文件androidmanifest.xml

声明welcomeactivity以及修改activity的启动顺序,由mainactivity改成welcomeactivity

原来的xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="supershare.android.hupeng.me.supershare">

  <application
      android:allowbackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsrtl="true"
      android:theme="@style/apptheme">
    <activity android:name=".mainactivity">
      <intent-filter>
        <action android:name="android.intent.action.main"/>
        <category android:name="android.intent.category.launcher"/>
      </intent-filter>
    </activity>

  </application>

</manifest>

修改成

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="supershare.android.hupeng.me.supershare">

  <application
      android:allowbackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsrtl="true"
      android:theme="@style/apptheme">
    <activity android:name=".welcomeactivity">
      <intent-filter>
        <action android:name="android.intent.action.main"/>
        <category android:name="android.intent.category.launcher"/>
      </intent-filter>
    </activity>
    <activity android:name=".mainactivity">

    </activity>

  </application>

</manifest>

至此项目的布局已经完成了,现在来完成跳转部分源码

在这里用到的核心函数为

handler.sendemptymessagedelayed

主要用来发送延迟消息

首先新建一个消息处理对象,负责发送与处理消息

 private handler handler = new handler() {
    @override
    public void handlemessage(message msg) {
      super.handlemessage(msg);
    }
  };

在handlemessage方法中处理消息,在这里接收到消息不做复杂处理以后直接执行跳转操作

贴上welcomeactivity全部代码

import android.app.activity;
import android.content.intent;
import android.os.bundle;
import android.os.handler;
import android.os.message;
import android.support.annotation.nullable;
import android.view.window;
import android.view.windowmanager;

/**
 * created by hupeng on 2016/9/21.
 */
public class welcomeactivity extends activity {
  @override
  protected void oncreate(@nullable bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    //隐藏标题栏以及状态栏
    getwindow().setflags(windowmanager.layoutparams.flag_fullscreen,
        windowmanager.layoutparams.flag_fullscreen);
    /**标题是属于view的,所以窗口所有的修饰部分被隐藏后标题依然有效,需要去掉标题**/
    requestwindowfeature(window.feature_no_title);
    setcontentview(r.layout.activity_welcome);
    handler.sendemptymessagedelayed(0,3000);
  }

  private handler handler = new handler() {
    @override
    public void handlemessage(message msg) {
      gethome();
      super.handlemessage(msg);
    }
  };

  public void gethome(){
    intent intent = new intent(welcomeactivity.this, mainactivity.class);
    startactivity(intent);
    finish();
  }
}

2.总结

在这里主要利用了android.os.handler的消息的延迟发送以及处理。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!