上一节对整个项目进行了综述(可参见 1. 项目综述 进行了解),接下来将从欢迎模块开始详细介绍。
知识点:
- 掌握欢迎界面的开发
- 主界面的标题栏
- 底部导航栏模块的开发,能够搭建底部导航栏
1. 欢迎界面
任务综述:
在实际开发中,开启应用程序时首先会呈现一个欢迎界面。此界面主要用于展示产品LOGO和公司的新闻信息。
1.1 欢迎界面
任务实施:
(1)创建项目。
指定包名为com.XXXX.newsdemo 。
(2)导入界面图片。
切换到Project选项卡/res中创建一个drawable-hdpi文件夹/导入背景图片;项目的icon图标导入mipmap-hdpi文件夹。
(3)创建欢迎界面。
类名为SplashActivity,布局文件名activity_splash。
activity_splash.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/launch_bg" >
</RelativeLayout>
(4)添加一个无标题的样式。项目创建时所有界面默认的蓝色标题栏不够美观。
styles.xml
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
(5)修改清单文件。项目需要设置自己的图标与无标题栏的样式,因此需要修改清单文件中标签中的icon与theme属性。
android:icon="@mipmap/app_icon"
android:theme="@style/AppTheme.NoActionBar"
注意:
由于SplashActivity为程序的启动界面,因此需要在清单文件中设置启动界面对应的Activity为SplashActivity。
1.2 欢迎界面逻辑代码
任务分析:
欢迎界面主要展示产品LOGO与新闻信息,通常会在该界面停留一段时间后自动跳转到其他界面,因此需要在逻辑代码中设置欢迎界面暂停几秒(3秒)后再跳转。
任务实施:
创建init()方法,在该方法中使用Timer和TimerTask类设置欢迎界面延迟3s再跳转到主界面(MainActivity,此时为空白界面)。
SplashActivity.xml
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
init();
}
private void init() {
//利用Timer让此界面延迟3秒后再跳转,timer中有一个线程,这个线程不断执行task
Timer timer = new Timer();
//timertask实现runnable接口,TimerTask类表示一个在指定时间内执行的task
TimerTask task = new TimerTask() {
@Override
public void run() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
SplashActivity.this.finish();
}
};
timer.schedule(task, 3000); //设置这个task在延迟三秒之后自动执行
}
}
2. 导航栏
任务综述:
项目中有一个底部导航栏,底部导航栏主要用于滑动切换不同的界面或者点击底部按钮时切换不同的界面,使用户