一、创建项目;
二、创建第二个导航页面activity_guide
import android.content.Intent; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import java.util.ArrayList; public class activity_guide extends AppCompatActivity{ private ViewPager guide_ViewPager; private VpAdapter vpAdapter; private static int[] imgs = {R.drawable.a, R.drawable.b, R.drawable.c}; private ArrayList<ImageView> imageViews; private ImageView[] dotViews;//小圆点 private VpAdapter adapter; private LinearLayout dot_Layout; private ViewPager vp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_guide); initView(); } private void initView() { dot_Layout = (LinearLayout) findViewById(R.id.dot_Layout); initImages(); initDots(); vp = (ViewPager) findViewById(R.id.vp); vpAdapter=new VpAdapter(imageViews); vp.setAdapter(vpAdapter); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for(int i = 0; i < dotViews.length; i++) { if (position == i) { dotViews[i].setSelected(true); } else { dotViews[i].setSelected(false); } } } @Override public void onPageScrollStateChanged(int state) { } }); } private void initDots() { LinearLayout layout = (LinearLayout) findViewById(R.id.dot_Layout); LinearLayout.LayoutParams mParams = new LinearLayout.LayoutParams(20, 20); mParams.setMargins(10, 0, 10, 0);//设置小圆点左右之间的间隔 dotViews = new ImageView[imgs.length]; //判断小圆点的数量,从0开始,0表示第一个 for (int i = 0; i < imageViews.size(); i++) { ImageView imageView = new ImageView(this); imageView.setLayoutParams(mParams); imageView.setImageResource(R.drawable.asd); if (i == 0) { imageView.setSelected(true);//默认启动时,选中第一个小圆点 } else{ imageView.setSelected(false); } dotViews[i] = imageView;//得到每个小圆点的引用,用于滑动页面时,(onPageSelected方法中)更改它们的状态。 layout.addView(imageView);//添加到布局里面显示 } } private void initImages() { //设置每一张图片都填充窗口 ViewPager.LayoutParams mParams = new ViewPager.LayoutParams(); imageViews = new ArrayList<ImageView>(); for (int i = 0; i < imgs.length; i++) { ImageView iv = new ImageView(this); iv.setLayoutParams(mParams);//设置布局 iv.setImageResource(imgs[i]);//为ImageView添加图片资源 iv.setScaleType(ImageView.ScaleType.FIT_XY);//这里也是一个图片的适配 imageViews.add(iv); if (i == imgs.length - 1) { //为最后一张图片添加点击事件 iv.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Intent toMainActivity = new Intent(activity_guide.this, MainActivity.class);//跳转到主界面 startActivity(toMainActivity); return true; } }); } } } }
三、创建适配器vpAdapter
import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import java.util.ArrayList; public class VpAdapter extends PagerAdapter { private ArrayList<ImageView> imageViews; public VpAdapter(ArrayList<ImageView> imageViews) { this.imageViews = imageViews; } @Override public int getCount() { // TODO Auto-generated method stub return imageViews.size(); } /** * 判断是否用对象生成界面 */ @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0 == arg1; } /** * 从ViewGroup中移除当前对象(图片) */ @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(imageViews.get(position)); } /** * 当前要显示的对象(图片) */ @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(imageViews.get(position)); return imageViews.get(position); } }
四、在drawable文件夹下创建xml文件asd.xml设置圆点颜色改变
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/circle_grey1" android:state_selected="false"/> <item android:drawable="@drawable/circle_blu1e" android:state_selected="true"/>
五、修改mainfests.xml文件改到引导页启动页面
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.viewpagesp"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> </activity> <activity android:name=".activity_guide" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity > </application> </manifest>
注释以下是需要的图片元素材料