RelativeLayout viewPagerContainer = (RelativeLayout) headerView.findViewById(R.id.content_pager_layout);
imgPager = (ViewPagerFixed) headerView.findViewById(R.id.content_VP);
imgPager.setPageMargin(10);
pagerAdapter = new MyPagerAdapter();
pagerAdapter.setFileList(mImages);
imgPager.setAdapter(pagerAdapter);
imgPager.setOnPageChangeListener(new MyOnPageChangeListener(viewPagerContainer));
viewPagerContainer.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// dispatch the events to the ViewPager, to solve the problem that we can swipe only the middle view.
return imgPager.dispatchTouchEvent(event);
}
});
public class MyOnPageChangeListener implements OnPageChangeListener {
private RelativeLayout viewPagerContainer;
public MyOnPageChangeListener(RelativeLayout viewPagerContainer) {
this.viewPagerContainer = viewPagerContainer;
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (viewPagerContainer != null) {
viewPagerContainer.invalidate();
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
}
class MyPagerAdapter extends PagerAdapter {/**刷新视图**/
public void setFileList(List<File> imgs) {
this.imgFile = imgs;
notifyDataSetChanged();
}
/**刷新视图**/
public void setList(List<img> row) {
this.imgList = row;
notifyDataSetChanged();
}
@Override
public int getCount() {
return size;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return (view == object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
final ImageView imageView = new ImageView(mActivity);
imageView.setBackgroundColor(Color.LTGRAY);
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
imageView.setTag(imageUrl);
imageView.setImageBitmap(loadedImage);
((ViewPager) container).addView(imageView, 0);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
<RelativeLayout
android:id="@+id/content_pager_layout"
android:layout_width="match_parent"
android:layout_height="365dp"
android:clipChildren="false"
android:layerType="software" >
<com.dotfive.chuanbang.layout.ViewPagerFixed
android:id="@+id/content_VP"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="15dp"
android:clipChildren="false"
android:gravity="center" />
</RelativeLayout>