<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Android實(shí)現(xiàn)駕考寶典做題翻頁(yè)效果

          共 3960字,需瀏覽 8分鐘

           ·

          2021-06-27 11:06

          效果如圖所示:




          思路:


          a.利用ViewPager自帶的動(dòng)畫(huà)效果,略作修改,實(shí)現(xiàn)滑動(dòng)覆蓋翻頁(yè)效果。


          b.移動(dòng)時(shí)加入陰影效果。


          1.關(guān)鍵代碼如下所示:

          public class ReaderViewPager extends ViewPager {
          public ReaderViewPager(Context context) { this(context, null);    }
          public ReaderViewPager(Context context, AttributeSet attrs) { super(context, attrs); setReadEffect();
          setScrollerDuration(); }
          private void setScrollerDuration() { try { Field field = ViewPager.class.getDeclaredField("mScroller"); field.setAccessible(true); FixedSpeedScroller scroller = new FixedSpeedScroller(getContext(), new DecelerateInterpolator()); field.set(this, scroller); scroller.setmDuration(300); } catch (Exception e) { Log.e("@", "", e); }    }
          public void setReadEffect() { 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);                } } }); }}


          2.陰影效果添加(其實(shí)陰影是一張圖片,本來(lái)是要在ReadViewPager內(nèi)部添加陰影效果,但是不顯示,貌似被ReadViewPage自己遮住了,就用笨辦法實(shí)現(xiàn)了_):

          <FrameLayout        android:layout_width="match_parent"        android:layout_height="match_parent">
          <com.example.zhangyipeng.anwerdemo.view.ReaderViewPager android:id="@+id/readerViewPager" android:layout_width="match_parent" android:layout_height="match_parent" />
          <!--陰影--> <ImageView android:id="@+id/shadowView" android:layout_width="20dp" android:layout_height="match_parent" android:background="@mipmap/shadow_right"/>
              </FrameLayout>


          3.陰影隨翻頁(yè)而移動(dòng)效果實(shí)現(xiàn)

          readerViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {                shadowView.setTranslationX(readerViewPager.getWidth()-positionOffsetPixels);            }
          @Override public void onPageSelected(int position) {
          }
          @Override public void onPageScrollStateChanged(int state) {
          } });


          4.OK,就是這么簡(jiǎn)單,快去做一個(gè)自己的駕考寶典吧 。。。


          5.我自己寫(xiě)了一些簡(jiǎn)單的實(shí)現(xiàn)方法,有3個(gè)View的實(shí)現(xiàn)方式,還有其他使用開(kāi)源控件實(shí)現(xiàn)的


          源碼地址:

          https://github.com/zzyyppqq/AnswerEffect


          到這里就結(jié)束啦。

          瀏覽 88
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月激情婷婷中文字幕 | 久久久久久99精品无码 | 韩国成人啪啪无码高潮 | 欧美性爱视频福利 | 婷婷五月天基地 |