为引导页添加导航点

来源:互联网 发布:淘宝的试用中心在哪里 编辑:程序博客网 时间:2024/05/21 14:56

在guide.xml中添加一个线性布局,再添加三个ImageView:

<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:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/viewPager"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:gravity="center_horizontal">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv1"
android:src="@drawable/login_point_selected"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv2"
android:src="@drawable/login_point"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv3"
android:src="@drawable/login_point"/>
</LinearLayout>
</RelativeLayout>


核心思想:三个ImageView作为三个空的图片容器用于存放三个点,当显示第一张引导页图片时,就为iv1设置亮点,

iv2和iv3都设置暗点,以此类推。


主Acitivity中把iv1,iv2,iv3找出来,给控件ViewPager添加一个监听器OnPageChangeListener:

public class Guide extends AppCompatActivity implements ViewPager.OnPageChangeListener{

private List<View> views;
private ViewPager vp;
private ViewPagerAdapter viewPagerAdapter;
private ImageView[] dots ;
private int[] ids = {R.id.iv1,R.id.iv2,R.id.iv3};

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.guide);
initView();
initDots();
}
private void initView(){
LayoutInflater inflater = LayoutInflater.from(this);
views = new ArrayList<>();
views.add(inflater.inflate(R.layout.one,null));
views.add(inflater.inflate(R.layout.two,null));
views.add(inflater.inflate(R.layout.three,null));

viewPagerAdapter = new ViewPagerAdapter(views,this);
vp = (ViewPager) findViewById(R.id.viewPager);
vp.setAdapter(viewPagerAdapter);
vp.addOnPageChangeListener(this);

}
private void initDots(){
dots = new ImageView[views.size()];
for (int i = 0;i<views.size();i++){
dots[i] = (ImageView) findViewById(ids[i]);
}
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
for (int i = 0;i<ids.length;i++){
if (position==i){
dots[i].setImageResource(R.drawable.login_point_selected);
}else {
dots[i].setImageResource(R.drawable.login_point);
}
}
}

@Override
public void onPageScrollStateChanged(int state) {

}
}


0 0
原创粉丝点击