如何App实现引导页和欢迎页

如何App实现引导页和欢迎页,第1张

欢迎页:这个在我们的微信里面就有这个,我们每一次打开微信的时候都有一个地球,那么这样就是欢迎页。欢迎页具有良好的数据缓存作用。

引导页:就是我们没次安装一个app的时候,前面都有几个图片。那么这个引导页有哪些作用,第一:它有教我们怎么使用这个app和接受这app。第二:有宣传的作用。

我们在这个功能中用到的知识点有ViewPage、ViewPage的适配器PageAdapter、ViewPage的滑动改变事件、、RadioGroupRadioButton的点击事件。

好,现在我们接下来上代码了。

这个就是我的项目结构。其中WActivity.class是欢迎页、FActivity.class是引导页、MyAdapter.class是ViewPage的适配、BasePageListen实现页面滑动的接口。

第一个我们先写WActivity这个类。

package com.example.office.startapp

import android.content.Context

import android.content.Intent

import android.content.SharedPreferences

import android.os.Handler

import android.support.v7.app.AppCompatActivity

import android.os.Bundle

public class WActivity extends AppCompatActivity {

private SharedPreferences sp

private boolean isFirst

//欢迎页面

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_w)

//获得共享参数对象

sp=getSharedPreferences("first", Context.MODE_PRIVATE)

//参数二 如果sp文件中没有记录的话 返回的默认值

isFirst=sp.getBoolean("isFirst",true)

//这里面的判断就是 如果是第一次进入app 那就跳转引导页

//不是第一次就跳到主页面

new Handler().postDelayed(new Runnable() {

SharedPreferences.Editor editor

Intent intent

@Override

public void run() {

if(isFirst){

intent =new Intent(WActivity.this,FActivity.class)

startActivity(intent)

WActivity.this.finish()

//把数据保存到sp里面

//获取可以向sp里面写入数据的对象

editor=sp.edit()

editor.putBoolean("first",false)

//提交我们的数据

editor.commit()

}else {

intent=new Intent(WActivity.this,MainActivity.class)

startActivity(intent)

WActivity.this.finish()

}

}

},1500)

}

}

下面我们就写MyAdpter这个类

import android.content.Context

import android.support.v4.view.PagerAdapter

import android.view.View

import android.view.ViewGroup

import android.widget.ImageView

import java.util.List

/**

* Created by OFFICE on 2016/8/9.

*/

public class MyAdapter extends PagerAdapter{

private List<ImageView >list

private Context context

public MyAdapter(Context context, List<ImageView>list) {

this.context = context

this.list = list

}

@Override

public int getCount() {

return list.size()

}

@Override

public boolean isViewFromObject(View view, Object object) {

return view==object

}

@Override

public Object instantiateItem(ViewGroup container, int position) {

container.addView(list.get(position))

return list.get(position)

}

//里面有一个方法必须删除super.不删除会报错

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

container.removeView((View)object)

}

}

我们写BasePageListen这个类

import android.support.v4.view.ViewPager

/**

* Created by OFFICE on 2016/8/9.

*/

public class BasePageListen implements ViewPager.OnPageChangeListener{

@Override

public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override

public void onPageSelected(int position) {

}

@Override

public void onPageScrollStateChanged(int state) {

}

}

最后我们写FActivit

import android.content.Intent

import android.support.v4.view.ViewPager

import android.support.v7.app.AppCompatActivity

import android.os.Bundle

import android.view.View

import android.widget.ImageView

import android.widget.RadioButton

import android.widget.RadioGroup

import java.util.ArrayList

import java.util.List

//引导页

public class FActivity extends AppCompatActivity {

private List<ImageView>list

private RadioGroup radioGroup

private ViewPager viewPager

private ImageView imageView1

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_f)

viewPager= (ViewPager) findViewById(R.id.viewPage)

radioGroup= (RadioGroup) findViewById(R.id.radiogroup)

imageView1= (ImageView) findViewById(R.id.image)

initView()

imageView1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(FActivity.this, MainActivity.class)

startActivity(intent)

FActivity.this.finish()

}

})

MyAdapter myAdapter=new MyAdapter(this,list)

viewPager.setAdapter(myAdapter)

//viewPage变动RadioButton也在变动

viewPager.addOnPageChangeListener(new BasePageListen(){

@Override

public void onPageSelected(int position) {

RadioButton radioButton= (RadioButton) radioGroup.getChildAt(position)

radioButton.setChecked(true)

if(position==list.size()-1){

imageView1.setVisibility(View.VISIBLE)

}else {

imageView1.setVisibility(View.GONE)

}

}

})

//当点击RadioButton的时候,viewpage也在改变

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

viewPager.setCurrentItem(checkedId)

}

})

}

private void initView(){

int [] images={R.mipmap.yd1,R.mipmap.yd2,R.mipmap.yd3}

list=new ArrayList<ImageView>()

for(int i=0i<images.lengthi++){

ImageView imageView=new ImageView(this)

imageView.setImageResource(images[i])

list.add(imageView)

RadioButton radioButton=new RadioButton(this)

//设置radioButton的id

radioButton.setId(i)

//把ReaioButton放在group

radioGroup.addView(radioButton)

}

//设置默认选中的第一个按钮

//获得下标为0的按钮对象

RadioButton radioButton= (RadioButton) radioGroup.getChildAt(0)

radioButton.setChecked(true)

}

}

好了,复制上去就可以实现上面的效果。

1 目的区分 根据引导页的目的、出发点不同,可以将其分为功能介绍类、使用说明类、推广类、问题解决类,一般引导页不会超过5页。 功能介绍类 功能介绍类引导页主要是对产品的主要功能进行展示,让用户对产品主功能有一个大致的了解。

你可以设置一个activity,然后启动定时任务,时间到了就跳转到主页,并且finish()掉当前页面。

也可以在主页的activity里面做,开始设置setContentView为欢迎页,定时任务,时间到了setContentView为主页,这样还可以在此过程中做一些初始化工作


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11442941.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存