使用viewpager实现app欢迎页

来源:互联网 发布:单片机下载程序元件 编辑:程序博客网 时间:2024/05/29 01:53

首先定义viewpager的xml

<span style="font-family: Arial, Helvetica, sans-serif;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"</span>
    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <android.support.v4.view.ViewPager        android:id="@+id/id_indexviewpager"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        >    </android.support.v4.view.ViewPager></LinearLayout>

定义viewpager中需要存放的view界面  同样的格式复制三份,在第三份中添加一个按钮

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"     android:gravity="center">    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="欢迎页3"         android:textSize="50dp"/>    <!-- <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="立即开始" /> --></LinearLayout>


新建IndexActivity将实现欢迎界面


package com.example.lenovo;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;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.support.v4.view.ViewPager.PageTransformer;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;public class IndexActivity extends Activity {private ViewPager mView;  // 刚才定义的viewpagerprivate List<View> list = new ArrayList<View>(); // 存放那三个view的listprivate LayoutInflater inflater; // 不解释private View view1, view2, view3; // 那三个需要显示的viewprivate SharedPreferences share; // 存放登录信息@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_index);share = this.getSharedPreferences("data", Context.MODE_PRIVATE);if(!isOpen()){ // 如果曾经被打开,就直接跳过欢迎界面,进入主界面startActivity(new Intent(IndexActivity.this, StartUi.class));IndexActivity.this.finish();}initView(); // 进行view的初始化addView();  // 将view添加到list中mView.setAdapter(new MyAdapter(list)); // 设置viewpager的适配器,和其他的自定义适配器类似mView.setPageTransformer(true, new TransForm()); // 设置切换时候的动画addListener(); // 设置viewpager和第三个view里的按钮的监听器}private boolean isOpen(){return share.getBoolean("isOpen", true);}@SuppressWarnings("deprecation")private void addListener() {mView.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int arg0) {}});Button btStart = (Button) view3.findViewById(R.id.button1);btStart.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(IndexActivity.this, StartUi.class));Editor edit = share.edit();edit.putBoolean("isOpen", false);edit.commit(); // 如果点击了按钮就就把已经打开的数据存放到手机中,下次将不再打开IndexActivity.this.finish(); // 顺便把这个activity结束掉}});}private void addView() {inflater = getLayoutInflater();view1 = inflater.inflate(R.layout.index1, null);view2 = inflater.inflate(R.layout.index2, null);view3 = inflater.inflate(R.layout.index3, null);list.add(view1);list.add(view2);list.add(view3);}private void initView() {mView = (ViewPager) findViewById(R.id.id_indexviewpager);}class MyAdapter extends PagerAdapter {private List<View> list;public MyAdapter(List<View> list) {this.list = list;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object instantiateItem(View container, int position) {((ViewGroup) container).addView(list.get(position));return list.get(position);}@Overridepublic void destroyItem(View container, int position, Object object) {((ViewGroup) container).removeView(list.get(position));}@Overridepublic int getItemPosition(Object object) {return super.getItemPosition(object);}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}}class TransForm implements PageTransformer {@Overridepublic void transformPage(View view, float position) {int pageWidth = view.getWidth();if (position < -1) { // [-Infinity,-1)view.setAlpha(0);} else if (position <= 0) { // [-1,0]view.setAlpha(1);view.setTranslationX(0);view.setScaleX(1);view.setScaleY(1);} else if (position <= 1) { // (0,1]// Fade the page out.view.setAlpha(1 - position);// Counteract the default slide transitionview.setTranslationX(pageWidth * -position);// Scale the page down (between MIN_SCALE and 1)float scaleFactor = (float) (0.5 + (1 - 0.5)* (1 - Math.abs(position)));view.setScaleX(scaleFactor);view.setScaleY(scaleFactor);} else { // (1,+Infinity]view.setAlpha(0);}}}}




0 0
原创粉丝点击