android - 动画 ViewPager 的特定页面
问题描述
我使用以下代码来实现ViewPager
淡入淡出效果:
//define view pager and set adapter:
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_startup_preference);
//we're not using the layout natively, but using Fragment's layout
//but setContentView is required -> it is accessed by : R.id.startPref_pager
StartPrefPagerAdapter prefPagerAdapter =
new StartPrefPagerAdapter(getSupportFragmentManager());
final ViewPager StartPref_Viewpager = findViewById(R.id.startPref_pager);
StartPref_Viewpager.setAdapter(prefPagerAdapter);
...
...
//set the animation with:
StartPref_Viewpager.setPageTransformer(false, new ViewPager.PageTransformer() {
@Override
public void transformPage(@NonNull View page, float position) {
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
page.setScaleX(0.5f);
page.setScaleY(0.5f);
page.setAlpha(0f);
page.setVisibility(View.VISIBLE);
page.animate().alpha(1f).setDuration(1000);
page.animate().scaleX(1f).setDuration(500);
page.animate().scaleY(1f).setDuration(500);
}
});
...
但是,我希望从第二页ViewPager
而不是从第一页本身开始应用动画。我怎样才能做到这一点?
解决方案
我实际上并没有这样做,但从您的代码看来,在position的基础上应用条件应该是可能的,如下所示。
StartPref_Viewpager.setPageTransformer(false, new ViewPager.PageTransformer() {
@Override
public void transformPage(@NonNull View page, float position) {
//this is the viewpager page position
if(position!=0)
{
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
page.setScaleX(0.5f);
page.setScaleY(0.5f);
page.setAlpha(0f);
page.setVisibility(View.VISIBLE);
page.animate().alpha(1f).setDuration(1000);
page.animate().scaleX(1f).setDuration(500);
page.animate().scaleY(1f).setDuration(500);
}
}
});
推荐阅读
- regex - Pandas - 在常用词之后提取特定文本
- bash - Shell函数从两个主机grep计数并返回wc的总和
- android - edittext nextfocusdown 到 searchview
- sharepoint - 如何在 SharePoint 中更改管理站点 URL?
- qt - 抓取多个屏幕
- jenkins - 我一直在尝试使用jenkins管道通过ansible playbook将jenkins构建的war文件部署到tomcat服务器中
- r - 简单的 Bray-Curtis 相异矩阵帮助:素食主义者
- python - 如何在python中传输IF语句?
- node.js - 如何使用 node.js 替换 mongo db 中的文档
- python - 当我尝试创建循环时出现 Python IndentationError