Android引导界面的实现 .

1.利用Preference存储数据,来记录是否是第一次打开软件(这个方法不适用于那种更新软件引导页面的实现,如果要实现这种业务,可以使用sqlite数据库版本的方式来实现)

2.利用ViewPager实现几个图片之间的切换

3.在最后一张图片,添加button点击事件,进入正式界面。

 

 

 

 

下面是activity_slide.xml布局文件

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/page3" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

        <ImageButton
            android:id="@+id/ib_start"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@android:color/transparent"
            android:visibility="gone"
            android:onClick="start" />

    </RelativeLayout>

</LinearLayout>


就是一个viewpager和一个按钮

默认情况下,按钮是不可见的,只有当用户滑动到最后一个页面的时候,按钮才可以被点击

这里使用懒办法,最后一个页面直接被按钮整个覆盖(按钮背景透明)这样用户在最后一个界面无论点击那个地方,都会直接进入主界面

 

 

下面是判断应用是否是第一次启动

private SharedPreferences sp;//配置记录文件

sp=getSharedPreferences("config", MODE_PRIVATE);

/**
  * 载入主页面,如果是第一次安装程序,则先加载欢迎界面
  */
 private void loadMainUI() {
  
  //判断是否是第一次进入程序
    if(!sp.getBoolean("isOne", false)){
     Intent intent = new Intent(this, SlideActivity.class);
     startActivity(intent);
     Editor ed=sp.edit();
     ed.putBoolean("isOne", true);
     ed.commit();
     // 启动完成后,释放当前页面
     finish();
    }else{
     Intent intent = new Intent(this, MainActivity.class);
     startActivity(intent);
     // 启动完成后,释放当前页面
     finish();
    }
 }


 

主要功能都是在SlideActivity里,我的代码里写了详细的注释的

import java.util.ArrayList;
import java.util.List;


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.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;

public class SlideActivity extends Activity {

	private ViewPager page;
	private List<ImageView> lists;
	private ImageButton ib_start;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		initView();
	}

	private void initView() {
		setContentView(R.layout.activity_slide);
		findView();
		fillData();
		setListener();
	}
	private void setListener() {
		page.setOnPageChangeListener(new OnPageChangeListener() {
			@Override
			public void onPageSelected(int arg0) {

				if(arg0==2){
					ib_start.setVisibility(View.VISIBLE);
				}else{
					ib_start.setVisibility(View.GONE);
				}
			}
			@Override
			public void onPageScrolled(int arg0, float arg1, int arg2) {
			}
			@Override
			public void onPageScrollStateChanged(int arg0) {
			}
		});
	}

	/**
	 *查找控件
	 */
	private void findView() {
		ib_start=(ImageButton) findViewById(R.id.ib_start);
		page = (ViewPager) findViewById(R.id.viewpager);
	}

	/**
	 * 填充数据
	 */
	private void fillData() {
		lists=new ArrayList<ImageView>();
		page.setAdapter(new MyPageAdapter());
	}

	/**
	 * 最后一个界面按钮所对应的点击事件
	 * 用于启动应用的主界面
	 * @param view
	 */
	public void start(View view) {
		finish();
		Intent intent = new Intent(this, MainActivity.class);
		startActivity(intent);
	}

	class MyPageAdapter extends PagerAdapter {

		/**
		 * 这里因为演示,直接写死数据
		 */
		@Override
		public int getCount() {
			return 3;
		}

		/**
		 * 官方推荐写法
		 * 判断obj是否是view
		 */
		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			return arg0 == arg1;
		}

		/**
		 * 移除一个item
		 */
		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			((ViewPager) container).removeView(lists.get(position));
		}

		/**
		 * 返回一个添加到viewpager的item
		 */
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			ImageView iv1 = null;
			if (position == 0) {
				iv1 = new ImageView(SlideActivity.this);
				iv1.setBackgroundResource(R.drawable.page1);
			} else if(position==1){
				iv1 = new ImageView(SlideActivity.this);
				iv1.setBackgroundResource(R.drawable.page2);
			}else {
				iv1 = new ImageView(SlideActivity.this);
				iv1.setBackgroundResource(R.drawable.page3);
			}
			lists.add(iv1);
			((ViewPager) container).addView(iv1);
			return iv1;
		}
	}
}


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值