看了大神的http://www.open-open.com/lib/view/open1462840410556.html viewpager翻转动画。发现有很好的翻转动态效果,但不是我要的显示效果,最后看到这个文章http://blog.csdn.net/wzy_1988/article/details/50463406。
我的如下:
<com.xxx.ViewPageContainer
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:clipChildren="false">
<android.support.v4.view.ViewPager
android:id="@+id/main_bg_vp"
android:layout_width="600dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:clipChildren="false" />
</com.xxx.ViewPageContainer>
ViewPagerContainer的源码和上个作者的一样
import android.content.Context;最后效果图如下:
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
/**
* Created by Administrator on 2017/2/28.
*/
public class ViewPageContainer extends FrameLayout {
private ViewPager mViewPager;
public ViewPageContainer(Context context) {
this(context, null);
}
public ViewPageContainer(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public ViewPageContainer(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initData();
}
private void initData() {
// 允许子View在其区域内进行绘制
setClipChildren(false);
// child clip功能在Android3.x之后的版本会因为硬件加速而不起作用,所以这里需要关闭硬件加速功能
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
try {
mViewPager = (ViewPager) getChildAt(0);
} catch (Exception e) {
throw new IllegalStateException("The root child of PagerContainer must be a ViewPager");
}
}
public ViewPager getViewPager() {
return mViewPager;
}
}