繁体   English   中英

如何实现通过中继每个页面的背景图像的Android视图传呼机?

[英]How to implement android view pager with relaying background images for each page?

请浏览以下查看寻呼机: 中继背景图像的查看寻呼机

我该如何实施。 我试图扩展ViewPager并重写onDraw(),但无法实现gif中观察到的行为。

我用透明圆实现了视图,该圆在背景上滚动。 我的主要问题是背景图像的绘制部分:平滑过渡,当页面稍微向左或向右滚动时,另一页的一半圆圈也可见的情况等。

这是您遇到的问题的提示。

采取框架布局并放置图像视图,然后在其上查看分页器。 现在准备一个布局,该布局的中心有一个透明的圆圈。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </android.support.v4.view.ViewPager>
</FrameLayout>
</LinearLayout>

现在,您可以使用View Pager的addOnPageChangeListener更改主布局中的Image,并在滚动时可以获得所需的效果。

Use the ViewPager.onPageChangeListener:

viewPager.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {}
public void onPageScrolled(int position, float positionOffset, int      positionOffsetPixels) {}

public void onPageSelected(int position) {
    // Change your Image here.
}
});

更新:示例项目是这里 GitHub上。

您可以通过使用ClipDrawable类来实现ClipDrawable 每个图像都放置在CoordinatorLayout内的ImageView中,彼此堆叠。 通过使用ViewPager回调方法,您可以根据ViewPager报告的偏移量来控制每个ClipDrawable的显示量。

这是在示例项目中浏览三页的一些屏幕截图。 我没有实现移动循环,但是我认为您已经明白了。

我希望这是您要寻找的。

演示在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM