Android 使用ViewPager实现类似gallery画廊的效果(画廊效果之ViewPager显示多个图片)
这个画廊的效果利用到了View的clipChildren属性,我们在这里要把ViewPager以及它的父窗体都设置为false,如下: Android:clipChildren=”false” 因为如果clipChildren属性设置为true,就表明我们要将children给clip掉,就是说对于子元素来说,超出当前view的部分都会被切掉,那我们在这里把它设置成false,就表明超出view的部分,不要切掉,依然显示。 xml代码部分: <LinearLayout android:id=”@+id/container” android:layout_width=”match_parent” android:layout_height=”100dp” android:clipChildren=”false” android:gravity=”center_horizontal” android:layerType=”software” android:orientation=”horizontal” > <android.support.v4.view.ViewPager android:id=”@+id/viewpager” android:layout_width=”match_parent” android:layout_height=”match_parent” android:layout_marginLeft=”110dp” android:layout_marginRight=”110dp” android:clipChildren=”false” > </android.support.v4.view.ViewPager> Java代码部分: // 1.设置幕后item的缓存数目 mViewPager.setOffscreenPageLimit(3); // 2.设置页与页之间的间距 mViewPager.setPageMargin(10); // 3.将父类的touch事件分发至viewPgaer,否则只能滑动中间的一个view对象 container.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return mViewPager.dispatchTouchEvent(event); } }); 参考效果图(上面代码并不能实现效果图,仅供参考): 正常情况下, ViewPager 一页只能显示一项数据, 但是如果需求是, 除了小显示本页数据, 还有包 左右两半的数据 也都露出一点来呢? 这该怎么处理? 后面在网上了搜了一下, 发现有不少这样得到文章, 这里自己也写一篇总结一下. 其实 主要就是用到 View 的 android:clipChildren 属性. 简单来说这个属性, 就是 父View 是否 束缚 子View 的显示范围. 如果 父View 有 padding , 那么 子View 则在 padding区域是不能显示内容的, 但是如果 设置 android:clipChildren 为 false 时, 则子View 就可以在 父View 的padding屈戌显示内容了. ok 基本了解了 android:clipChildren 那么来处理一下 ViewPager吧 先看一下我做的demo: ...