将 Alpha 页面转换器应用于 ViewPager
Applying Alpha page transformer to ViewPager
我正在实施 ViewPager Transformer,其中,当我们在 viewpager 中滑动时,文本 Alpha 应该从 0.3f(未选择的页面)到 1.0f(已选择的页面)缓慢转换。
这是期望的输出。 Viewpager Transformation image
由于我是 Android 的新手,我尝试了以下方法,基本上我对应用什么公式感到困惑。
public class AlphaTextTransformer implements ViewPager.PageTransformer {
public void transformPage(@NonNull View view, float position) {
int pageWidth = view.getWidth();
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.setAlpha(0.3 f);
} else if (position <= 0) { // [-1,0]
// Use the default slide transition when moving to the left page
view.setAlpha(0.3 f);
} else if (position <= 1) { // (0,1]
// Fade the page out.
view.setAlpha(0.3 f + Math.abs(position));
} else { // (1,+Infinity]
// This page is way off-screen to the right.
view.setAlpha(0.3 f);
}
}
}
我在 time.Left 屏幕上显示了 3 个页面,右侧页面部分显示为 0 的文本 alpha 值。3f.Center 页面文本的 alpha 值为 1。我不想立即将 alpha 值设置为 1,但它会随着我们执行滑动而渐进。有人可以帮我提供正确的指针吗?如果有人可以帮助我提供示例代码,我将不胜感激。
谢谢。
你用断点或日志检查postion的值了吗?也许它不符合你的期望值?
您应该检查 this library 的代码,看看它是如何工作的,它与 pagetransformer
我正在实施 ViewPager Transformer,其中,当我们在 viewpager 中滑动时,文本 Alpha 应该从 0.3f(未选择的页面)到 1.0f(已选择的页面)缓慢转换。
这是期望的输出。 Viewpager Transformation image
由于我是 Android 的新手,我尝试了以下方法,基本上我对应用什么公式感到困惑。
public class AlphaTextTransformer implements ViewPager.PageTransformer {
public void transformPage(@NonNull View view, float position) {
int pageWidth = view.getWidth();
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.setAlpha(0.3 f);
} else if (position <= 0) { // [-1,0]
// Use the default slide transition when moving to the left page
view.setAlpha(0.3 f);
} else if (position <= 1) { // (0,1]
// Fade the page out.
view.setAlpha(0.3 f + Math.abs(position));
} else { // (1,+Infinity]
// This page is way off-screen to the right.
view.setAlpha(0.3 f);
}
}
}
我在 time.Left 屏幕上显示了 3 个页面,右侧页面部分显示为 0 的文本 alpha 值。3f.Center 页面文本的 alpha 值为 1。我不想立即将 alpha 值设置为 1,但它会随着我们执行滑动而渐进。有人可以帮我提供正确的指针吗?如果有人可以帮助我提供示例代码,我将不胜感激。
谢谢。
你用断点或日志检查postion的值了吗?也许它不符合你的期望值?
您应该检查 this library 的代码,看看它是如何工作的,它与 pagetransformer