viewpager实现欢迎界面

来源:互联网 发布:宁波新房成交最新数据 编辑:程序博客网 时间:2024/05/16 13:39

需求: 第一次进入应用显示欢迎界面,   再进入应用直接跳至主界面

组成: 

1  欢迎动画  用来请求网络数据,增强良好的用户体验

2  引导界面  用来显示应用功能,及广告达到推广宣传功能,仅第一次进入应用显示, 通过ViewPager实现

3  主界面    



欢迎动画 

<pre name="code" class="java">import android.app.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.os.Handler;import android.view.Window;public class SplashActivity extends Activity {private boolean isFirst = true;//用来标记是否第一次进入应用,默认为trueprivate boolean b;private SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_splash);sp = getSharedPreferences("config", MODE_PRIVATE);b=sp.getBoolean("isFirst", true);new Handler() {public void handleMessage(android.os.Message msg) {if (b) {//如果是第一次进入应用sp.edit().putBoolean("isFirst", false).commit();//修改标记startActivity(new Intent(SplashActivity.this, Guide.class));//进入引导界面} else {//不是第一次进入应用,直接进入主界面startActivity(new Intent(SplashActivity.this, MainActivity.class));}};}.sendEmptyMessageDelayed(0, 3000);//模拟网络请求数据延时}}




引导界面

布局:viewpager+button   button在最后一个pager显示,点击进入主界面

<?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.support.v4.view.ViewPager        android:id="@+id/view_pager"        android:layout_width="match_parent"        android:layout_height="match_parent" />        <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:layout_marginBottom="30dp"        android:paddingLeft="30dp"        android:paddingRight="30dp"        android:text="开始体验"        android:textSize="20sp"        android:visibility="gone" /></RelativeLayout>


代码实现

import java.util.ArrayList;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.View;import android.view.Window;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;import android.widget.ImageView;public class Guide extends Activity {ArrayList<ImageView> list=new ArrayList<ImageView>();private Button bt;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_guide);bt = (Button) findViewById(R.id.bt);ViewPager pager = (ViewPager) findViewById(R.id.pager);ImageView imageView1 = new ImageView(getBaseContext());imageView1.setBackgroundResource(R.drawable.guide_1);ImageView imageView2 = new ImageView(getBaseContext());imageView2.setBackgroundResource(R.drawable.guide_2);ImageView imageView3 = new ImageView(getBaseContext());imageView3.setBackgroundResource(R.drawable.guide_3);list.add(imageView1);list.add(imageView2);list.add(imageView3);bt.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubstartActivity(new Intent(Guide.this,MainActivity.class));finish();}});pager.setAdapter(new MyAdapter());pager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {if(arg0==2){bt.setVisibility(View.VISIBLE);}}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}});}class MyAdapter extends PagerAdapter{@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0==arg1;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stub((ViewPager)container).addView(list.get(position));return list.get(position);}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View)object);}}}





0 0
原创粉丝点击