最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android ViewPager實(shí)現(xiàn)滑動(dòng)翻頁效果實(shí)例代碼

 更新時(shí)間:2017年03月08日 14:28:01   作者:妖久  
本篇文章主要介紹了android ViewPager實(shí)現(xiàn)滑動(dòng)翻頁效果實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

實(shí)現(xiàn)ViewPager的滑動(dòng)翻頁效果可以使用ViewPager的setPageTransformer方法,如下:

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.View;


public class ReadViewPager extends ViewPager
{
  public ReadViewPager(Context context)
  {
    super(context);
  }

  public ReadViewPager(Context context, AttributeSet attrs)
  {
    super(context, attrs);
    setAnima();
  }

  public void setAnima()
  {
    setPageTransformer(true, new PageTransformer()
    {
      private static final float MIN_SCALE = 0.75f;

      @Override
      public void transformPage(View view, float position)
      {

        int pageWidth = view.getWidth();
        int pageHeight =view.getHeight();

        if (position < -1)
        {
          // [-Infinity,-1)
          // This page is way off-screen to the left.
          view.setAlpha(0);

        }
        else if (position <= 0)
        {
          // [-1,0]
          // Use the default slide transition when moving to the left page
          view.setAlpha(1);
          view.setTranslationX(0);
          view.setScaleX(1);
          view.setScaleY(1);
        }
        else if (position <= 1)
        {
          // (0,1]

          // Fade the page out.
          view.setAlpha(1 - position);
//
//          // Counteract the default slide transition
//          view.setAlpha(1);
          view.setTranslationX(pageWidth * -position);
//
//          // Scale the page down (between MIN_SCALE and 1)
          float scaleFactor = MIN_SCALE
              + (1 - MIN_SCALE) * (1 - Math.abs(position));
          view.setScaleX(scaleFactor);
          view.setScaleY(scaleFactor);
        }
        else
        {
          // (1,+Infinity]
          // This page is way off-screen to the right.
          view.setAlpha(0);
        }
      }

    });
  }
}

核心代碼是android官方demo,以上實(shí)現(xiàn)的是翻頁效果是:上面一頁被滑出界面時(shí),下面一頁慢慢顯現(xiàn),透明度慢慢加大,并且大小由小慢慢變大。

不過有一個(gè)奇怪的現(xiàn)象,當(dāng)我做一個(gè)答題界面時(shí),剛剛開始我采用ViewPager與View結(jié)合實(shí)現(xiàn)無限循環(huán)切換,并且采用上面的動(dòng)畫效果,可是每當(dāng)我滑動(dòng)到最后一張,也就是要開始新的一輪循環(huán)的時(shí)候,被滑出去的一頁也會(huì)出現(xiàn)慢慢變透明的情況,而我用ViewPager結(jié)合Fragment實(shí)現(xiàn)無限循環(huán)切換的是就不會(huì)出現(xiàn)這種效果

如果想要實(shí)現(xiàn)仿造駕考寶典的翻頁效果,只要把核心方法改為以下代碼便可以了

setPageTransformer(true, new PageTransformer() {
      private static final float MIN_SCALE = 0.75f;

      @Override
      public void transformPage(View view, float position) {

        int pageWidth = view.getWidth();
         int pageHeight =view.getHeight();

        if (position < -1) { // [-Infinity,-1)
          // This page is way off-screen to the left.
          view.setAlpha(0);

        } else if (position <= 0) { // [-1,0]
          // Use the default slide transition when moving to the left page
          view.setAlpha(1);
          view.setTranslationX(0);
          view.setScaleX(1);
          view.setScaleY(1);


        } else if (position <= 1) { // (0,1]

          // Fade the page out.
//          view.setAlpha(1 - position);
//
//          // Counteract the default slide transition
          view.setAlpha(1);
          view.setTranslationX(pageWidth * -position);
//
//          // Scale the page down (between MIN_SCALE and 1)
//          float scaleFactor = MIN_SCALE
//              + (1 - MIN_SCALE) * (1 - Math.abs(position));
//          view.setScaleX(scaleFactor);
//          view.setScaleY(scaleFactor);

        } else { // (1,+Infinity]
          // This page is way off-screen to the right.
          view.setAlpha(0);
        }


      }
    });

下面我們來講講position參數(shù):

position的可能性的值有:

[-Infinity,-1)  已經(jīng)看不到了

(1,+Infinity] 已經(jīng)看不到了

 [-1,1]

重點(diǎn)看[-1,1]這個(gè)區(qū)間 , 其他兩個(gè)的View都已經(jīng)看不到了~~

 假設(shè)現(xiàn)在ViewPager在A頁現(xiàn)在滑出B頁,則:

A頁的position變化就是( 0, -1]

B頁的position變化就是[ 1 , 0 ]

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

奉贤区| 西昌市| 泽州县| 昭苏县| 敖汉旗| 屏山县| 大渡口区| 应用必备| 峨眉山市| 淮北市| 峨眉山市| 伊金霍洛旗| 麦盖提县| 乐昌市| 淅川县| 开封市| 密山市| 马公市| 类乌齐县| 昌江| 郎溪县| 大渡口区| 宁南县| 清涧县| 伽师县| 新晃| 济南市| 临沭县| 丁青县| 福海县| 东安县| 凤庆县| 漳州市| 临沂市| 安陆市| 济宁市| 丹凤县| 商丘市| 宝清县| 嘉义县| 柳江县|