今天的破事呢就说说APP加载页面的实现。一般情况下,当APP打开的时候,我们需要做很多事情,比如检查网络连接啊,初始化一些配置啊等等。我们可以让这些事情在APP完全打开之前做完,然后呢在打开的过程中显示一些logo信息。想必大家都见过。

先贴个运行效果:

好,我们进入正题。

首先我们先配置下AndroidManifest.xml

在application节点里面添加一个自定义的activity:

<!-- startup page --><activityandroid:name="com.withiter.quhao.activity.LaunchActivity"android:theme="@android:style/Theme.NoTitleBar.Fullscreen"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!-- category page -->

这里注意两个事情:

<intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>

就是刚打开APP的时候加载这个activity:

com.withiter.quhao.activity.LaunchActivity

第二步,写这个activity,我先把代码贴出来,具体的说明都写在注释里了:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;import com.withiter.quhao.R;public class LaunchActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.launch);Handler x = new Handler();//定义一个handle对象x.postDelayed(new splashhandler(), 3000);//设置3秒钟延迟执行splashhandler线程。其实你这里可以再新建一个线程去执行初始化工作,如判断SD,网络状态等}class splashhandler implements Runnable{public void run() {startActivity(new Intent(getApplication(),MainActivity.class));// 这个线程的作用3秒后就是进入到你的主界面LaunchActivity.this.finish();// 把当前的LaunchActivity结束掉}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.launch, menu);return true;}}

然后3秒后就可以到主界面了。

这里lunch.xml就是你打开是的界面,将停留3秒:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".LaunchActivity" android:gravity="center"android:background="#FFFFFF"><ImageViewandroid:id="@+id/launch_logo"android:layout_width="wrap_content"android:layout_height="wrap_content"android:contentDescription="@string/empty"android:src="@drawable/launch_logo" android:scaleType="fitXY"android:gravity="center"android:layout_gravity="center"/></FrameLayout>

我这里呢放了一个图片,就是最开始见到的那个,怎么样,效果还可以吧。花了好长时间ps的。。

好了今天这个破事就到这里,其实android开发就这么点破事。关于其他破事,见专栏:

更多Android开发的破事,请看专栏:《Android开发那点破事》

【Android开发那点破事】打开APP加载页面实现相关推荐

  1. [Android开发那点破事]解决android.os.NetworkOnMainThreadException

    昨天和女朋友换了手机,我的iPhone 4S 换了她得三星I9003.第一感觉就是好卡,果断刷机.以前是Android 2.3的系统.回来刷成了4.4. 好了,问题来了.在我用手机测试我们的APP的时 ...

  2. 【Android开发那点破事】解决android.os.NetworkOnMainThreadException

    昨天和女朋友换了手机,我的iPhone 4S 换了她得三星I9003.第一感觉就是好卡,果断刷机.以前是Android 2.3的系统.回来刷成了4.4. 好了,问题来了.在我用手机测试我们的APP的时 ...

  3. Android开发之通过接口回调机制加载数据(源代码分享)

    Android开发之通过接口回调机制加载数据的简单实现,在实际开发中通过callback方法得到网络加载的数据的使用频率远比通过直接开启线程或异步任务加载数据的频率高的多,这篇文章的代码将简单实现该机 ...

  4. android开发学习之路——连连看之加载图片(三)

    正如前面AbstractBoard类的代码中看到的,当程序需要创建N个Piece对象时,程序会直接调用ImageUtil的getPlayImages()方法去获取图片,该方法将会随机从res\ dra ...

  5. 从app加载页面说开去

    好的交互设计的评判标准之一是"别让我等",但互联网产品总是受制于实际的网络问题.移动端产品则更为明显,2G.3G环境下加载不够给力,wifi环境也未必每次都是那么顺利.因此&quo ...

  6. Android开发-自己动手写Bitmap高效加载 跟OOM说再见

    Bitmap 前言 BitmapFactory.Options BitmapFactory 高效加载Bitmap inDensity,inTargetDensity,inScaled inSample ...

  7. android开发之用阿里云OSS加载图片

    概要 阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务.用户可以通过调用API,在任何应用.任何时间.任何地点上传和 ...

  8. android开发文本字体包,AndroidStudio 实现加载字体资源的方法

    AndroidStudio 实现加载字体资源的方法 在android中字体的格式总是不能尽善尽美的显示出来 ,  于是要求我们使用一些有美感的字体,加载的方式(就像HTML的字体一样),我们需要通过加 ...

  9. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )

    文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

最新文章

  1. PICRUSt2:OTU或ASV等16S随便预测宏基因组且数据库增加10倍
  2. 小米note3无线显示电脑连接服务器,小米note3如何连接电脑 小米note3连接电脑没反应怎么办...
  3. 不装客户端连接mysql_C#不安装oracle客户端,如何连接到oracle数据库
  4. sublime text3下BracketHighlighter的配置方法
  5. AlphaFold2立功!清华团队用深度学习增强新冠抗体,创AI里程碑
  6. JDK历史版本主要新特性
  7. 亲和数(220/284)
  8. SpringBoot之json转java实体类
  9. 一篇关于用户需求,己方产品(服务)与竞争对手的小清单
  10. mysql表的默认所有者_MySQL数据库基本管理-001
  11. 神经网络在线和离线的区别,神经网络网站
  12. jdk7对list进行排序(按照list中entity的某个属性比如age)
  13. 光伏发电并网matlab/simulink仿真,带PLL锁相环,逆变器控制,最大功率控制MPPT,BOOST升压电路
  14. 【协议森林】IPv6过渡技术之MAP-T/E技术
  15. 2022危险化学品经营单位主要负责人上岗证题库及在线模拟考试
  16. 09盘点:梦幻诛仙蜀门剑网三的营销启示
  17. thinkcmf5.1项目实现pc端和wap手机端自动切换
  18. 量子革命?脑机接口?电子皮肤?我看了一次高质量科学大会
  19. 微博之战,新浪微博已显颓势
  20. 世界各个国家坐标位置和中国各个省份坐标位置json格式

热门文章

  1. python中的多态和鸭子模型
  2. 客户端渲染CSR、服务器端渲染SSR、预渲染Prerendering
  3. 修改phpmyadmin上传文件大小限制
  4. 计算机网络知识点笔记
  5. 数据结构之索引表的创建设计
  6. 常见单片机通信协议介绍【CAN、LIN】【7000字】【详解】【原创】
  7. 详解爬取搜狐号自媒体的所有文章
  8. 安卓手记--No3:在APPcenter发布APP,并供其他人下载
  9. qt5移植mqtt库
  10. 文章内容丢失测试奥术大师多