// ViewPager布局
<RelativeLayout
android:id="@+id/relat"
android:layout_width="match_parent"
android:layout_height="200dp"
>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
></android.support.v4.view.ViewPager>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:gravity="bottom"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#f00"
android:textSize="20sp" />
<LinearLayout
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
</LinearLayout>
</LinearLayout>
</RelativeLayout>
=======================================================
//小圆点布局
<shape
android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="8dp"/>
<solid android:color="#f00"/>
</shape>
<shape
android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="8dp"/>
<solid android:color="#fff"/>
</shape>
================================================
// ViewPager 单个图片布局
<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:scaleType="fitXY"
android:id="@+id/vp_img"/>
=======================================================
public class MainActivity extends Activity {
private ViewPager vp;
private LinearLayout line;
private ArrayList<ImageView> list;
int myimgs[] = {R.drawable.man1,R.drawable.man2,R.drawable.man3,R.drawable.man4};
//handler对象
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
//设置viewpager无限轮播
switch (msg.what) {
case 1:
int position = vp.getCurrentItem();
position++;
vp.setCurrentItem(position);
handler.sendEmptyMessageDelayed(1, 2000);
break;
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = (ViewPager)findViewById(R.id.vp);
line=(LinearLayout)findViewById(R.id.line);
list = new ArrayList<ImageView>();
vp.setAdapter(new MyPagerAdapter(MainActivity.this,myimgs,handler));
//动态生成小圆点
initData();
//设置viewpager的初始坐标
vp.setCurrentItem(100000);
//轮播
handler.sendEmptyMessageDelayed(1, 2000);
//viewpager监听事件
viewpagerLister();
}
//viewpager滑动监听事件
private void viewpagerLister() {
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
for (int i = 0; i < list.size(); i++) {
if(i==position%myimgs.length){
list.get(position%myimgs.length).setImageResource(R.drawable.hot_fouses);
}else{
list.get(i).setImageResource(R.drawable.hot_normal);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
//动态生成小圆点
private void initData() {
if(list!=null){
list.clear();
}
//变量图片数量,生成圆点
for (int i = 0; i < myimgs.length; i++) {
ImageView iv = new ImageView(MainActivity.this);
if(i==0){
iv.setImageResource(R.drawable.hot_fouses);
}else{
iv.setImageResource(R.drawable.hot_normal);
}
//创建原点
LayoutParams params = new LayoutParams(10, 10);
//设置间隔
params.setMargins(10, 0, 10, 0);
//把imageview添加到集合
list.add(iv);
//给付控件添加子空件
line.addView(iv, params);
}
}
=======================================
// 适配器
public class MyPagerAdapter extends PagerAdapter {
Context context;
int[] imgs;
Handler handler;
public MyPagerAdapter(Context context, int[] imgs,
Handler handler) {
this.context=context;
this.imgs=imgs;
this.handler=handler;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
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) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View v = View.inflate(context, R.layout.vp_item, null);
ImageView img = (ImageView) v.findViewById(R.id.vp_img);
//图片触摸事件
img.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
//按下handler停止发送消息
case MotionEvent.ACTION_DOWN:
handler.removeCallbacksAndMessages(null);
break;
//抬起handler发送消息
case MotionEvent.ACTION_UP:
handler.sendEmptyMessageDelayed(1, 2000);
break;
case MotionEvent.ACTION_CANCEL:
handler.sendEmptyMessageDelayed(1, 2000);
break;
default:
break;
}
return true;
}
});
//添加布局
img.setImageResource(imgs[position%imgs.length]);
container.addView(v);
return v;
}
}