【问题标题】:Custom animation by overriding transformPage(View view, float position) method of PageTransformer class of View Pager通过覆盖 View Pager 的 PageTransformer 类的 transformPage(View view, float position) 方法自定义动画
【发布时间】:2019-09-11 23:32:09
【问题描述】:

我想要我的视图寻呼机动画,如下图左侧和右侧的图像。 我有 3 页。中间的不能动。当我向左或向右移动时,仅向左或向右滚动时,中间屏幕几乎没有淡入淡出。

我正在通过覆盖视图分页器中 PageTransformer 类的 transformPage(View view, float position) 方法制作动画

 private final PageTransformer mPageTransformer2 = new PageTransformer() {
    @Override
    public void transformPage(View view, float position) {
        Log.d("CalViewPager", "transformPage: " + position );

        if (position < 0.0f ) {
            // Pin the left page to the left side.
            view.setTranslationX(getWidth() * -position);
            view.setAlpha(Math.max(1.0f - position, 0.0f));
        } else{
            // Use the default slide transition when moving to the next page.
            view.setTranslationX(0.0f);
            view.setAlpha(1.0f);
        }


    };

上面的代码在右侧工作正常,我也在尝试在左侧做。因此,我尝试了解 transform(View view, float position) 方法的位置值。但我无法弄清楚它是如何随视图变化的?

我发现了什么 如果我交换右侧每个位置值增加 1,如果在左侧则它减少 1。但是我怎么知道哪个视图具有哪个位置值?

注意:-如果您没有得到我的问题或需要更多解释,请发表评论

【问题讨论】:

    标签: android animation android-viewpager android-pagetransformer


    【解决方案1】:

    您必须使用以下代码:

    public void transformPage(View page, float position) {
           final float normalizedposition = Math.abs(Math.abs(position) - 1);
           page.setScaleX(normalizedposition / 2 + 0.5f);
           page.setScaleY(normalizedposition / 2 + 0.5f);
    

    }

    例如访问这个网站example of cardpager yazdani

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 2018-02-11
      • 2020-02-26
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多