废话就不多说了,直接上效果图和代码

797650464a7047c1d9fb6c9947c756e9.png

7f4605007b7abcfcaf4a079f3f1be965.png

fry.activity01

package fry;

import java.util.arraylist;

import java.util.collection;

import java.util.iterator;

import java.util.list;

import java.util.listiterator;

import com.example.viewpager.r;

import android.app.activity;

import android.os.bundle;

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.layoutparams;

import android.widget.imageview;

import android.widget.linearlayout;

public class activity01 extends activity implements onpagechangelistener,onclicklistener{

private viewpager viewpager;

private list views;//用来存放放进viewpager里面的imageview

private int[] imageid;//

private imagepageradapter adapter;//适配器

private linearlayout linearlayout;

private int currentpoint;//当前被选中中页面的下标

@override

protected void oncreate(bundle savedinstancestate) {

// todo auto-generated method stub

super.oncreate(savedinstancestate);

setcontentview(r.layout.activity01);

initdata();

initview();

}

//初始化view

void initview(){

adapter=new imagepageradapter(views);

viewpager=(viewpager) findviewbyid(r.id.viewpager);

viewpager.setadapter(adapter);

linearlayout=(linearlayout) findviewbyid(r.id.linearlayout);

initpoint();

viewpager.setonpagechangelistener(this);

}

//初始化数据

void initdata(){

//将图片的id全部放到imageid集合中

imageid=new int[]{r.drawable.guide1,r.drawable.guide2,r.drawable.guide3,r.drawable.guide4};

views=new arraylist();

//给iamgeview设置layoutparams参数

layoutparams layoutparams=new layoutparams(layoutparams.match_parent, layoutparams.match_parent);

for(int i:imageid){

//不确定1

imageview imageview=new imageview(this);

imageview.setimageresource(i);

imageview.setlayoutparams(layoutparams);

views.add(imageview);

}

}

/*

* 初始化页面下方的点

*/

private void initpoint(){

imageview[] imageview=new imageview[imageid.length];

for(int i=0;i

imageview[i]=(imageview) linearlayout.getchildat(i);

imageview[i].setimageresource(r.drawable.point_normal);

imageview[i].setonclicklistener(this);

imageview[i].settag(i);

}

currentpoint=0;

imageview[currentpoint].setimageresource(r.drawable.point_select);

}

/*

* 将页面下方的点全部置为未选中状态

*/

private imageview[] clearpoint(){

imageview[] imageview=new imageview[imageid.length];

for(int i=0;i

imageview[i]=(imageview) linearlayout.getchildat(i);

imageview[i].setimageresource(r.drawable.point_normal);

}

return imageview;

}

@override

public void onpagescrollstatechanged(int arg0) {

// todo auto-generated method stub

}

@override

public void onpagescrolled(int arg0, float arg1, int arg2) {

// todo auto-generated method stub

}

/*

* 页面被选中时候执行的方法

* (non-javadoc)

* @see android.support.v4.view.viewpager.onpagechangelistener#onpageselected(int)

*/

@override

public void onpageselected(int position) {

// todo auto-generated method stub

imageview[] imageview= clearpoint();

imageview[position].setimageresource(r.drawable.point_select);

}

//小圆点点击事件

@override

public void onclick(view v) {

// todo auto-generated method stub

int i=(integer) v.gettag();

viewpager.setcurrentitem(i);

}

}

fry.imagepageradapter

package fry;

import java.util.arraylist;

import java.util.list;

import android.support.v4.view.pageradapter;

import android.support.v4.view.viewpager;

import android.view.view;

import android.view.viewgroup;

public class imagepageradapter extends pageradapter{

private list views;

public imagepageradapter(list views) {

this.views=views;

}

@override

public int getcount() {

// todo auto-generated method stub

return this.views.size();

}

/**

* position是在viewpager中显示图片的位置

* 我对应的图片放到对应的位置就好了

* instantiateitem和destroyitem是对应的

* 一个是创建item,一个是销毁item

*/

@override

public object instantiateitem(viewgroup container, int position) {

((viewpager)container).addview(views.get(position));

return views.get(position);

}

@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) {

((viewpager)container).removeview(views.get(position));

}

}

/viewpager/res/layout/activity01.xml

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/viewpager"

android:layout_width="match_parent"

android:layout_height="match_parent"

>

android:id="@+id/linearlayout"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_gravity="bottom|center"

>

android:id="@+id/point1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/point_select"

android:padding="25dip"

/>

android:id="@+id/point2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/point_normal"

android:padding="25dip"

/>

android:id="@+id/point3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/point_normal"

android:padding="25dip"

/>

android:id="@+id/point4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/point_normal"

android:padding="25dip"

/>

b52f83086dd6630712e63ecfa2827bff.png

1、多个控件(这里指小圆点)可以用list来一起访问

2、可用动态的控件设置tag来区分控件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐