Android实现APP欢迎页面 - 自动轮播+页面跳转+判断
2017-08-07 16:14
561 查看
今天来一个ViewPager相关的的小程序:自动轮播+页面跳转+判断是否第一次进入!
(如果是第一次进入则显示欢迎页,否则直接进入到主页)话不多说,先来张效果图:
要实现这个小程序,先来看一下具体是如何构成的:
那么,接下来就是我们的代码实现步骤了!
首先是我们的布局文件 activity_splash.xml:
<android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/ll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="50dp" android:orientation="horizontal" > </LinearLayout> /** * 这里我们实现一个小小的功能 * 只在第四个页面上显示一个按钮,其他页面设置为隐藏 * 当我们点击按钮时,进行Activity跳转 */ <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="100dp" android:text="开始体验" android:visibility="gone" />
OK,布局已经创建好了,接下来就是我们最重要的配置文件了,SplashActivity.java文件代码如下:
import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.os.Handler; 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.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.LinearLayout; import android.widget.RadioGroup; public class SplashActivity extends Activity { ViewPager vp; RadioGroup rg; Button btn; LinearLayout ll; //把小圆点存到集合中 List<ImageView> listDoc; List<ImageView> list; int[] imgArray = { R.drawable.guide1, R.drawable.guide2, R.drawable.guide3, R.drawable.ic_launcher }; int count = 0; Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { count++; vp.setCurrentItem(count); sendEmptyMessageDelayed(0, 1000); }; }; SharedPreferences preferences; Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); //当该acitivty启动的时候,先从SharedPreferences中获取登录状态的值,如果为true,那么直接调转到主页 preferences = getSharedPreferences("state", MODE_PRIVATE); if(preferences.getBoolean("isLogin", false)){ Intent intent = new Intent(SplashActivity.this, MainActivity.class); startActivity(intent); finish(); } // rg = (RadioGroup) findViewById(R.id.rg); btn = (Button) findViewById(R.id.btn); // 1、初始化控件 vp = (ViewPager) findViewById(R.id.vp); // 2、初始化数据 initData(); // 3、创建apdater对象 MyPagerAdapter adapter = new MyPagerAdapter(); // 4、绑定 vp.setAdapter(adapter); //添加小圆点的方法 addDoc(); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(SplashActivity.this, MainActivity.class); startActivity(intent); finish(); } }); handler.sendEmptyMessageDelayed(0, 1000); vp.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { // 通过vp的选中位置,来确定小圆点的联动 int index = arg0 % list.size(); for (int i = 0; i < imgArray.length; i++) { if(index == i){ listDoc.get(i).setImageResource(R.drawable.point_selected); }else{ listDoc.get(i).setImageResource(R.drawable.point_mormal); } } //当index == 3的时候 说明显示的是第四张图片 if(index == imgArray.length - 1){ btn.setVisibility(View.VISIBLE); }else{ btn.setVisibility(View.GONE); } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } b7d8 @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } }); } /** * 把小圆点按照导航图片的数量初始化出来 */ private void addDoc() { listDoc = new ArrayList<ImageView>(); ll = (LinearLayout) findViewById(R.id.ll); //根据图片的数量创建小圆点对象 for (int i = 0; i < imgArray.length; i++) { ImageView iv = new ImageView(SplashActivity.this); if(i == 0){ iv.setImageResource(R.drawable.point_selected); }else{ iv.setImageResource(R.drawable.point_mormal); } listDoc.add(iv); ll.addView(iv); } } @Override protected void onStop() { //重写stop声明周期方法 //当点击按钮执行页面跳转时,欢迎页会被关闭,那么handler的消息不会随着acitivy的关闭而停止,所以需要手动移除消息 if(handler != null){ handler.removeMessages(0); } super.onStop(); } private void initData() { list = new ArrayList<ImageView>(); for (int i = 0; i < imgArray.length; i++) { ImageView iv = new ImageView(SplashActivity.this); iv.setImageResource(imgArray[i]); iv.setScaleType(ScaleType.FIT_XY); list.add(iv); } } class MyPagerAdapter extends PagerAdapter { @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0 == arg1; } @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO Auto-generated method stub container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { // 因为是无限轮播 所以position参数会一直增长 // 那么我需要对list集合的长度取余数得到一个index下标 int index = position % list.size(); container.addView(list.get(index)); return list.get(index); } } }
到这里,我们的功能就都写好了,不要忘了最重要的一个步骤,就是那我们的AndroidManifest.xml文件中的首页设置成我们刚刚写好的欢迎页;
<activity android:name="com.example.weektwob.MainActivity" android:label="@string/app_name" > </activity>
好了,希望对大家有所帮助,也希望大家多多支持一下 (^_^)
相关文章推荐
- JSP中实现判断客户端手机类型并跳转到app下载页面
- android的理解之一——实现欢迎页面的跳转
- Android app欢迎页面停留几秒的实现
- Android App跳转App以及App跳转指定App页面的实现
- android实现App活动定时自动跳转效果
- Android实现深度链接(APP外带动态参数唤醒APP,并跳转指定页面,APP不论在不在运行都可以)
- Android实现欢迎界面的自动跳转
- Android欢迎页面自动跳转和触摸进入首页
- 在线安装ipa ,跨过app-store / JSP中实现判断客户端手机类型并跳转到app下载页面
- Android实现APP欢迎页面 - 简单制作思路
- ionic ionic2进入App前判断是否登录,进入页面之前作判断,实现未登录跳转
- Android实现欢迎界面的自动跳转
- Android实现APP欢迎页面 - ViewPager实现欢迎引导页面
- Android中自己实现App一打开判断是否有更新,并通过依赖AutoInstaller实现自动更新
- android实现动画自动播放的渐变欢迎页面
- Android——实现欢迎界面的自动跳转(转)
- 如何实现网站根据ip判断地区 自动跳转到所属地区页面【PHP版】
- Android——Timer TimerTask定时任务实现App界面欢迎页 自动跳转
- Android App中用Handler实现ViewPager页面的自动切换
- Android实现简单地APP欢迎页面