版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】AndroidUI中如何实现应用程序只启动一次引导界面
一、SharedPreferences的详细介绍和用法SharedPreferences介绍:SharedPreferences使用方法:二、实现的效果图
/upload/information/20200623/125/126609.jpg/upload/information/20200623/125/126610.jpg/upload/information/20200623/125/126611.jpg/upload/information/20200623/125/126612.png
/upload/information/20200623/125/126613.jpg/upload/information/20200623/125/126612.png三、程序的目录结构/upload/information/20200623/125/126614.jpg四、具体的实现编码<RelativeLayout
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</RelativeLayout><?xml
version="1.0"
encoding="UTF-8"?>
<RelativeLayout
xmlns:android="/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/star_img1"
android:orientation="vertical"
>
</RelativeLayout><?xml
version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/welcome_background">
</LinearLayout><RelativeLayout
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="欢迎来到主页面!"
android:textSize="25sp"/>
</RelativeLayout><?xml
version="1.0"
encoding="utf-8"?>
<selector
xmlns:android="/apk/res/android">
<item
android:state_enabled="true"
android:state_pressed="true"
android:drawable="@drawable/login_button_select"
/>
<!--按下时的效果-->
<item
android:state_enabled="true"
android:drawable="@drawable/login_button"
/>
<!--正常状态的效果-->
</selector>package
com.yangyu.myguideview04;
import
java.util.ArrayList;
import
android.support.v4.view.PagerAdapter;
import
android.support.v4.view.ViewPager;
import
android.view.View;
/**
*
@author
yangyu
*
功能描述:ViewPager适配器,用来绑定数据和view
*/
public
class
ViewPagerAdapter
extends
PagerAdapter
{
//界面列表
private
ArrayList<View>
views;
public
ViewPagerAdapter
(ArrayList<View>
views){
this.views
=
views;
}
/**
*
获得当前界面数
*/
@Override
public
int
getCount()
{
if
(views
!=
null)
{
return
views.size();
}
return
0;
}
/**
*
初始化position位置的界面
*/
@Override
public
Object
instantiateItem(View
view,
int
position)
{
((ViewPager)
view).addView(views.get(position),
0);
return
views.get(position);
}
/**
*
判断是否由对象生成界面
*/
@Override
public
boolean
isViewFromObject(View
view,
Object
arg1)
{
return
(view
==
arg1);
}
/**
*
销毁position位置的界面
*/
@Override
public
void
destroyItem(View
view,
int
position,
Object
arg2)
{
((ViewPager)
view).removeView(views.get(position));
}
}package
com.yangyu.myguideview04;
import
java.util.ArrayList;
import
android.app.Activity;
import
android.content.Intent;
import
android.os.Bundle;
import
android.support.v4.view.ViewPager;
import
android.support.v4.view.ViewPager.OnPageChangeListener;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
/**
*
@author
yangyu
*
功能描述:引导界面activity类
*/
public
class
GuideActivity
extends
Activity
implements
OnPageChangeListener{
//
定义ViewPager对象
private
ViewPager
viewPager;
//
定义ViewPager适配器
private
ViewPagerAdapter
vpAdapter;
//
定义一个ArrayList来存放View
private
ArrayList<View>
views;
//
定义各个界面View对象
private
View
view1,
view2,
view3,
view4;
//定义开始按钮对象
private
Button
startBt;
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guide);
initView();
initData();
}
/**
*
初始化组件
*/
private
void
initView()
{
//实例化各个界面的布局对象
LayoutInflater
mLi
=
LayoutInflater.from(this);
view1
=
mLi.inflate(R.layout.guide_view01,
null);
view2
=
mLi.inflate(R.layout.guide_view02,
null);
view3
=
mLi.inflate(R.layout.guide_view03,
null);
view4
=
mLi.inflate(R.layout.guide_view04,
null);
//
实例化ViewPager
viewPager
=
(ViewPager)
findViewById(R.id.viewpager);
//
实例化ArrayList对象
views
=
new
ArrayList<View>();
//
实例化ViewPager适配器
vpAdapter
=
new
ViewPagerAdapter(views);
//实例化开始按钮
startBt
=
(Button)
view4.findViewById(R.id.startBtn);
}
/**
*
初始化数据
*/
private
void
initData()
{
//
设置监听
viewPager.setOnPageChangeListener(this);
//
设置适配器数据
viewPager.setAdapter(vpAdapter);
//将要分页显示的View装入数组中
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
//
给开始按钮设置监听
startBt.setOnClickListener(new
OnClickListener()
{
@Override
public
void
onClick(View
v)
{
startbutton();
}
});
}
@Override
public
void
onPageScrollStateChanged(int
arg0)
{
}
@Override
public
void
onPageScrolled(int
arg0,
float
arg1,
int
arg2)
{
}
@Override
public
void
onPageSelected(int
arg0)
{
}
/**
*
相应按钮点击事件
*/
private
void
startbutton()
{
Intent
intent
=
new
Intent();
intent.setClass(GuideActivity.this,MainActivity.class);
startActivity(intent);
this.finish();
}
}package
com.yangyu.myguideview04;
import
android.app.Activity;
import
android.content.Intent;
import
android.content.SharedPreferences;
import
android.content.SharedPreferences.Editor;
import
android.os.Bundle;
/**
*
@author
yangyu
*
功能描述:欢迎界面
*/
public
class
Welcome
extends
Activity
implements
Runnable
{
//是否是第一次使用
private
boolean
isFirstUse;
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
/**
*
启动一个延迟线程
*/
new
Thread(this).start();
}
public
void
run()
{
try
{
/**
*
延迟两秒时间
*/
Thread.sleep(2000);
//读取SharedPreferences中需要的数据
SharedPreferences
preferences
=
getSharedPreferences("isFirstUse",MODE_WORLD_READABLE);
isFirstUse
=
preferences.getBoolean("isFirstUse",
true);
/**
*如果用户不是第一次使用则直接调转到显示界面,否则调转到引导界面
*/
if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年钢铁行业全域大模型威赛博2.0技术架构与能力解析
- 辽宁省法库县2026年初三年级下学期五调考试生物试题含解析
- 江西省南康区南康八中学2025-2026学年初三冲刺模拟生物试题试卷含解析
- 2026届辽宁省沈阳市沈河区初三生物试题第三次调研试卷含解析
- 2026年数据产权纠纷中相反证据推翻登记证明情形
- 浙江省杭州市富阳区2026年初三第二次中考模拟化学试题含解析
- 湖南省怀化市新晃侗族自治县2026年初三第一次月考-化学试题试卷含解析
- 黑龙江省鸡东县2026届中考模拟金典卷生物试题(三)试题含解析
- 2026年乡村露营地(亲子露营 星空露营)投资回报测算与选址标准
- 2026届广东省深圳市龙岗区龙岭中学初三“一诊”模拟考试生物试题含解析
- 2026智慧水利一体化建设方案
- 施工现场节后复工安全教育培训
- 车辆智能共享出行技术课件 第1章 绪论
- 苏教版科学六年级下册全册练习附答案
- 《石油化工项目可行性研究投资估算编制办法》
- 2022上海金融信息产业发展报告
- 宠物行为与心理基础-行为获得(宠物心理与行为)
- 房地产项目环境影响评价报告(优秀环评报告)
- 健身休闲综合体可行性研究报告
- FZ/T 10025-2022本色布技术要求规范
- 概率与统计(英文)chapter 2 probability
评论
0/150
提交评论