• 大小: 935KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-25
  • 语言: Java
  • 标签: Android  ToggleButton  

资源简介

Github上的资源,Android自定义控件,模仿ios风格

资源截图

代码片段和文件信息

/*
 *  Copyright (c) 2013 Facebook Inc.
 *  All rights reserved.
 *
 *  This source code is licensed under the BSD-style license found in the
 *  LICENSE file in the root directory of this source tree. An additional grant
 *  of patent rights can be found in the PATENTS file in the same directory.
 *
 */

package com.facebook.rebound;

import android.annotation.TargetApi;
import android.os.Build;
import android.os.Handler;
import android.os.SystemClock;
import android.view.Choreographer;

/**
 * Android version of the spring looper that uses the most appropriate frame callback mechanism
 * available. It uses Android‘s {@link Choreographer} when available otherwise it uses a
 * {@link Handler}.
 */
abstract class AndroidSpringLooperFactory {

  /**
   * Create an Android {@link com.facebook.rebound.SpringLooper} for the detected Android platform.
   * @return a SpringLooper
   */
  public static SpringLooper createSpringLooper() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
      return ChoreographerAndroidSpringLooper.create();
    } else {
      return LegacyAndroidSpringLooper.create();
    }
  }

  /**
   * The base implementation of the Android spring looper using a {@link Handler} for the
   * frame callbacks.
   */
  private static class LegacyAndroidSpringLooper extends SpringLooper {

    private final Handler mHandler;
    private final Runnable mLooperRunnable;
    private boolean mStarted;
    private long mLastTime;

    /**
     * @return an Android spring looper using a new {@link Handler} instance
     */
    public static SpringLooper create() {
      return new LegacyAndroidSpringLooper(new Handler());
    }

    public LegacyAndroidSpringLooper(Handler handler) {
      mHandler = handler;
      mLooperRunnable = new Runnable() {
        @Override
        public void run() {
          if (!mStarted || mSpringSystem == null) {
            return;
          }
          long currentTime = SystemClock.uptimeMillis();
          mSpringSystem.loop(currentTime - mLastTime);
          mHandler.post(mLooperRunnable);
        }
      };
    }

    @Override
    public void start() {
      if (mStarted) {
        return;
      }
      mStarted = true;
      mLastTime = SystemClock.uptimeMillis();
      mHandler.removeCallbacks(mLooperRunnable);
      mHandler.post(mLooperRunnable);
    }

    @Override
    public void stop() {
      mStarted = false;
      mHandler.removeCallbacks(mLooperRunnable);
    }
  }

  /**
   * The Jelly Bean and up implementation of the spring looper that uses Android‘s
   * {@link Choreographer} instead of a {@link Handler}
   */
  @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
  private static class ChoreographerAndroidSpringLooper extends SpringLooper {

    private final Choreographer mChoreographer;
    private final Choreographer.frameCallback mframeCallback;
    private boolean mStarted;
    private long mLastTime;

    /**
     * @return an Android spring choreographer using the syst

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-03-20 01:20  ToggleButton-master\
     文件         108  2015-03-20 01:20  ToggleButton-master\.gitignore
     文件        1403  2015-03-20 01:20  ToggleButton-master\README.md
     目录           0  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\
     文件         466  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\.classpath
     文件         818  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\.project
     文件         277  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\AndroidManifest.xml
     目录           0  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\bin\
     文件         277  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\bin\AndroidManifest.xml
     文件         456  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\bin\R.txt
     文件       35814  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\bin\togglebuttonlib.jar
     文件         893  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\build.gradle
     文件         781  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\proguard-project.txt
     文件         584  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\project.properties
     目录           0  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\res\
     目录           0  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\res\values\
     文件         550  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\res\values\toggle_button_attrs.xml
     目录           0  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\
     目录           0  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\
     目录           0  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\
     目录           0  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\
     文件        4148  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\AndroidSpringLooperFactory.java
     文件        5751  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\baseSpringSystem.java
     文件         733  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\OrigamiValueConverter.java
     文件         665  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\SimpleSpringListener.java
     文件       16862  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\Spring.java
     文件        1430  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\SpringConfig.java
     文件        2571  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\SpringConfigRegistry.java
     文件        1037  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\SpringListener.java
     文件        1208  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\SpringLooper.java
     文件         639  2015-03-20 01:20  ToggleButton-master\ToggleButtonLib\src\com\facebook\rebound\SpringSystem.java
............此处省略66个文件信息

评论

共有 条评论