viewpager實現歡迎界面


需求: 第一次進入應用顯示歡迎界面,   再進入應用直接跳至主界面

組成: 

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;//用來標記是否第一次進入應用,默認爲true
	private boolean b;
	private SharedPreferences sp;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.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;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.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() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				startActivity(new Intent(Guide.this,MainActivity.class));
				finish();
				
			}
		});
		
		pager.setAdapter(new MyAdapter());
		
		pager.setOnPageChangeListener(new OnPageChangeListener() {
			
			@Override
			public void onPageSelected(int arg0) {
				if(arg0==2){
					bt.setVisibility(View.VISIBLE);
				}
				
			}
			
			@Override
			public void onPageScrolled(int arg0, float arg1, int arg2) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onPageScrollStateChanged(int arg0) {
				// TODO Auto-generated method stub
				
			}
		});
		
	}

	class MyAdapter extends PagerAdapter{

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return list.size();
		}

		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			// TODO Auto-generated method stub
			return arg0==arg1;
		}
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			// TODO Auto-generated method stub
			((ViewPager)container).addView(list.get(position));
			return list.get(position);
		}
		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			
			container.removeView((View)object);
		}
		
	}
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章