Java 类android.widget.OverScroller 实例源码

项目:Bridge    文件:ResolverDrawerLayout.java   
public ResolverDrawerLayout(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);

    final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ResolverDrawerLayout,
            defStyleAttr, 0);
    mMaxWidth = a.getDimensionPixelSize(R.styleable.ResolverDrawerLayout_android_maxWidth, -1);
    mMaxCollapsedHeight = a.getDimensionPixelSize(
            R.styleable.ResolverDrawerLayout_maxCollapsedHeight, 0);
    mMaxCollapsedHeightSmall = a.getDimensionPixelSize(
            R.styleable.ResolverDrawerLayout_maxCollapsedHeightSmall,
            mMaxCollapsedHeight);
    a.recycle();

    mScrollIndicatorDrawable = context.getDrawable(R.drawable.scroll_indicator_material);

    mScroller = new OverScroller(context, AnimationUtils.loadInterpolator(context,
            android.R.interpolator.decelerate_quint));
    mVelocityTracker = VelocityTracker.obtain();

    final ViewConfiguration vc = ViewConfiguration.get(context);
    mTouchSlop = vc.getScaledTouchSlop();
    mMinFlingVelocity = vc.getScaledMinimumFlingVelocity();

    setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
}
项目:PageScrollView    文件:PageScrollView.java   
@Override
public void computeScroll() {
    boolean scrollerWorkNow = SCROLL_STATE_SETTLING == mScrollState;
    OverScroller scroller = scrollerWorkNow ? getScroller() : null;
    if (scroller != null && scroller.computeScrollOffset()) {
        int oldX = getScrollX();
        int oldY = getScrollY();
        int x = scroller.getCurrX();
        int y = scroller.getCurrY();
        if (oldX != x || oldY != y) {
            scrollTo(x, y);
        }
        ViewCompat.postInvalidateOnAnimation(this);
    } else {
        if (scrollerWorkNow) {
            markAsWillIdle();
        }
    }
}
项目:Hitalk    文件:SpringView.java   
public SpringView(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.context = context;
    inflater = LayoutInflater.from(context);

    mScroller = new OverScroller(context);

    //获取自定义属性
    TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.SpringView);
    if (ta.hasValue(R.styleable.SpringView_type)){
        int type_int = ta.getInt(R.styleable.SpringView_type, 0);
        type = Type.values()[type_int];
    }
    if (ta.hasValue(R.styleable.SpringView_give)){
        int give_int = ta.getInt(R.styleable.SpringView_give, 0);
        give = Give.values()[give_int];
    }
    if (ta.hasValue(R.styleable.SpringView_header)){
        headerResoureId = ta.getResourceId(R.styleable.SpringView_header, 0);
    }
    if (ta.hasValue(R.styleable.SpringView_footer)){
        footerResoureId = ta.getResourceId(R.styleable.SpringView_footer, 0);
    }
    ta.recycle();
}
项目:Hitalk    文件:OverScrollLayout.java   
private void init() {
        configuration = ViewConfiguration.get(getContext());
        mScroller = new Scroller(getContext(), new OvershootInterpolator(0.75f));
        flingRunnable = new FlingRunnable();
        overScrollRunnable = new OverScrollRunnable();
        flingScroller = new OverScroller(getContext());
        detector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                if (isOverScrollTop || isOverScrollBottom || isOverScrollLeft || isOverScrollRight) {
                    return false;
                }
//
                flingRunnable.start(velocityX, velocityY);
                return false;
            }
        });
    }
项目:WLLayout    文件:WLLayout.java   
private void reflectAbsListView() {
    try {
        Class<?> absListViewCls = Class.forName("android.widget.AbsListView");
        Field mFlingRunnableField = absListViewCls.getDeclaredField("mFlingRunnable");
        mFlingRunnableField.setAccessible(true);
        Object mFlingRunnable = mFlingRunnableField.get(mListView);


        Class<?> flingRunnableCls = Class.forName("android.widget.AbsListView$FlingRunnable");
        Field mScrollerFeild = flingRunnableCls.getDeclaredField("mScroller");
        mScrollerFeild.setAccessible(true);
        mScrollerReflectd = (OverScroller) mScrollerFeild.get(mFlingRunnable);
    } catch (Exception e) {
        mScrollerReflectd = null;
        Log.d(TAG, "###Exception Stack###", new Throwable(e));
    }
}
项目:RLibrary    文件:RRecyclerView.java   
/**
 * 滚动结束后时的速率
 */
public float getLastVelocity() {
    Object mViewFlinger = Reflect.getMember(RecyclerView.class, this, "mViewFlinger");
    Object mScroller = Reflect.getMember(mViewFlinger, "mScroller");
    float currVelocity = 0f;
    if (mScroller instanceof OverScroller) {
        currVelocity = ((OverScroller) mScroller).getCurrVelocity();
    } else if (mScroller instanceof ScrollerCompat) {
        currVelocity = ((ScrollerCompat) mScroller).getCurrVelocity();
    } else {
        throw new IllegalArgumentException("未兼容的mScroller类型:" + mScroller.getClass().getSimpleName());
    }

    if (Float.isNaN(currVelocity)) {
        currVelocity = mLastVelocity;
    } else {
        mLastVelocity = currVelocity;
    }
    return currVelocity;
}
项目:UiLib    文件:SwipeMenuLayout.java   
public SwipeMenuLayout(Context context, AttributeSet attrs,
                       int defStyle) {
    super(context, attrs, defStyle);

    TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.SwipeMenuLayout);
    mLeftViewId = typedArray.getResourceId(R.styleable.SwipeMenuLayout_leftViewId, mLeftViewId);
    mContentViewId = typedArray.getResourceId(R.styleable.SwipeMenuLayout_contentViewId, mContentViewId);
    mRightViewId = typedArray.getResourceId(R.styleable.SwipeMenuLayout_rightViewId, mRightViewId);
    typedArray.recycle();

    ViewConfiguration configuration = ViewConfiguration.get(getContext());
    mScaledTouchSlop = configuration.getScaledTouchSlop();
    mScaledMinimumFlingVelocity = configuration.getScaledMinimumFlingVelocity();
    mScaledMaximumFlingVelocity = configuration.getScaledMaximumFlingVelocity();

    mScroller = new OverScroller(getContext());
}
项目:OpenWithX    文件:ResolverDrawerLayout.java   
public ResolverDrawerLayout(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);

    final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ResolverDrawerLayout,
            defStyleAttr, 0);
    mMaxWidth = a.getDimensionPixelSize(R.styleable.ResolverDrawerLayout_android_maxWidth, -1);
    mMaxCollapsedHeight = a.getDimensionPixelSize(
            R.styleable.ResolverDrawerLayout_maxCollapsedHeight, 0);
    mMaxCollapsedHeightSmall = a.getDimensionPixelSize(
            R.styleable.ResolverDrawerLayout_maxCollapsedHeightSmall,
            mMaxCollapsedHeight);
    a.recycle();

    mScrollIndicatorDrawable = context.getDrawable(R.drawable.scroll_indicator_material);

    mScroller = new OverScroller(context, AnimationUtils.loadInterpolator(context,
            android.R.interpolator.decelerate_quint));
    mVelocityTracker = VelocityTracker.obtain();

    final ViewConfiguration vc = ViewConfiguration.get(context);
    mTouchSlop = vc.getScaledTouchSlop();
    mMinFlingVelocity = vc.getScaledMinimumFlingVelocity();

    setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
}
项目:RLibrary    文件:StickLayout2.java   
private void initLayout() {
    mOverScroller = new OverScroller(getContext());
    mGestureDetectorCompat = new GestureDetectorCompat(getContext(),
            new GestureDetector.SimpleOnGestureListener() {

                @Override
                public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, final float velocityY) {
                    if (Math.abs(velocityX) > Math.abs(velocityY)) {
                        return false;
                    }

                    if (isFloat() /*&& velocityY < 0*/) {
                        return false;
                    }
                    fling(velocityY);
                    return true;
                }
            });
}
项目:GitHub    文件:BGAStickyNavLayout.java   
private void init(Context context) {
    setOrientation(VERTICAL);

    mOverScroller = new OverScroller(context);
    final ViewConfiguration configuration = ViewConfiguration.get(context);
    mTouchSlop = configuration.getScaledTouchSlop();
    mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
    mMinimumVelocity = configuration.getScaledMinimumFlingVelocity();
}
项目:Bailan    文件:PullToRefreshView.java   
public PullToRefreshView(Context context, AttributeSet attrs) {
    super(context, attrs);
    mInflater = LayoutInflater.from(context);
    mScroller = new OverScroller(context);

    //获取自定义属性
    TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.PullToRefresh);
    if (ta.hasValue(R.styleable.PullToRefresh_header_indicator)) {
        mHeaderIndicatorClassName = ta.getString(R.styleable.PullToRefresh_header_indicator);
    }
    if (ta.hasValue(R.styleable.PullToRefresh_footer_indicator)) {
        mFooterIndicatorClassName = ta.getString(R.styleable.PullToRefresh_footer_indicator);
    }
    ta.recycle();
}
项目:yphoto    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:TestChat    文件:SwipeMenuLayout.java   
public SwipeMenuLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.SwipeMenuLayout);
        mLeftViewId = typedArray.getResourceId(R.styleable.SwipeMenuLayout_leftViewId, mLeftViewId);
        mContentViewId = typedArray.getResourceId(R.styleable.SwipeMenuLayout_contentViewId, mContentViewId);
        mRightViewId = typedArray.getResourceId(R.styleable.SwipeMenuLayout_rightViewId, mRightViewId);
        typedArray.recycle();

        ViewConfiguration mViewConfig = ViewConfiguration.get(getContext());
        mScaledTouchSlop = mViewConfig.getScaledTouchSlop();
        mScroller = new OverScroller(getContext());
        mScaledMinimumFlingVelocity = mViewConfig.getScaledMinimumFlingVelocity();
        mScaledMaximumFlingVelocity = mViewConfig.getScaledMaximumFlingVelocity();
}
项目:Hitalk    文件:TouchImageView.java   
public CompatScroller(Context context) {
  if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
    isPreGingerbread = true;
    scroller = new Scroller(context);
  } else {
    isPreGingerbread = false;
    overScroller = new OverScroller(context);
  }
}
项目:AndroidBackendlessChat    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:xRecycleView    文件:XRefreshLayout.java   
public XRefreshLayout(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);

    MIN_LOADING_LAYOUG_HEIGHT = DensityUtil.dip2px(context, MIN_LOADING_LAYOUG_HEIGHT);
    OVERSCROLL_RANGE = DensityUtil.dip2px(context, OVERSCROLL_RANGE);

    scroller = new OverScroller(getContext());
    loadingLayout = new DefaultLoadingLayout();
}
项目:RLibrary    文件:RefreshLayout.java   
protected void initRefreshView() {
    mScroller = new OverScroller(getContext(), new DecelerateInterpolator());

    if (isInEditMode()) {
        return;
    }
    if (mTopView == null) {
        mTopView = new BasePointRefreshView(getContext());
        mTopView.setTag(TOP_VIEW);
    }
    if (mBottomView == null) {
        mBottomView = new BasePointRefreshView(getContext());
        mBottomView.setTag(TOP_VIEW);
    }
    if (mTipView == null) {
        RTextView textView = new RTextView(getContext());
        textView.setGravity(Gravity.CENTER);
        textView.setTextColor(Color.WHITE);
        textView.setRBackgroundColor(SkinHelper.getSkin().getThemeSubColor());
        textView.setBackgroundResource(R.drawable.base_bg_selector);
        textView.setText("测试专用...");
        textView.setTag(TIP_VIEW);
        int left = getResources().getDimensionPixelOffset(R.dimen.base_xhdpi);
        int top = getResources().getDimensionPixelOffset(R.dimen.base_ldpi);
        textView.setPadding(left, top, left, top);
        mTipView = textView;

        mTipView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                T_.show("Test");
            }
        });
    }
}
项目:ImageMagnifier    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < 9) {
        this.isPreGingerbread = true;
        this.scroller = new Scroller(context);
        return;
    }
    this.isPreGingerbread = false;
    this.overScroller = new OverScroller(context);
}
项目:chat-sdk-android-push-firebase    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:event-me    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:Monolith    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:Android_ImagePicker    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:social-app-android    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:CXJPadProject    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);
    }
    else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:CXJPadProject    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);
    }
    else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:LueansRead    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:BlogBookApp    文件:ZoomImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:PhotoPicker-master    文件:TouchImageView.java   
public CompatScroller(Context context) {
  if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
    isPreGingerbread = true;
    scroller = new Scroller(context);
  } else {
    isPreGingerbread = false;
    overScroller = new OverScroller(context);
  }
}
项目:JZAndroidChart    文件:OverScrollerCompat.java   
/**
 * @see android.view.ScaleGestureDetector#getCurrentSpanY()
 */
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public static float getCurrVelocity(OverScroller overScroller) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        return overScroller.getCurrVelocity();
    } else {
        return 0;
    }
}
项目:Jiuchi    文件:JiuChi.java   
private void init() {
    mPaint = new Paint();
    mPaint.setStyle(Paint.Style.FILL);
    mScroller = new OverScroller(getContext());
    mVelocityTracker = VelocityTracker.obtain();

    maximumFlingVelocity = ViewConfiguration.get(getContext()).getScaledMaximumFlingVelocity();
    minimumFlingVelocity = ViewConfiguration.get(getContext()).getScaledMinimumFlingVelocity();


}
项目:BooheeRuler    文件:InnerRuler.java   
public void init(Context context){
        mContext = context;

        mMaxLength = mParent.getMaxScale() - mParent.getMinScale();
        mCurrentScale = mParent.getCurrentScale();
        mCount = mParent.getCount();
        mDrawOffset = mCount * mParent.getInterval() / 2;

        initPaints();

        mOverScroller = new OverScroller(mContext);

//        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
        //配置速度
        mVelocityTracker = VelocityTracker.obtain();
        mMaximumVelocity = ViewConfiguration.get(context)
                .getScaledMaximumFlingVelocity();
        mMinimumVelocity = ViewConfiguration.get(context)
                .getScaledMinimumFlingVelocity();

        initEdgeEffects();

        //第一次进入,跳转到设定刻度
        getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                getViewTreeObserver().removeOnGlobalLayoutListener(this);
                goToScale(mCurrentScale);
            }
        });
        checkAPILevel();
    }
项目:spinify_android    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:Expert-Android-Programming    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:boohee_v5.6    文件:BooheeRulerView.java   
public BooheeRulerView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    this.df = new DecimalFormat("#.##");
    this.isActionUp = false;
    this.isCancel = false;
    this.f = true;
    this.scroller = new OverScroller(context);
    init(attrs);
}
项目:boohee_v5.6    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < 9) {
        this.isPreGingerbread = true;
        this.scroller = new Scroller(context);
        return;
    }
    this.isPreGingerbread = false;
    this.overScroller = new OverScroller(context);
}
项目:Programmers    文件:TouchImageView.java   
public CompatScroller(Context context) {
    if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) {
        isPreGingerbread = true;
        scroller = new Scroller(context);

    } else {
        isPreGingerbread = false;
        overScroller = new OverScroller(context);
    }
}
项目:ClouldReader    文件:GingerScroller.java   
public GingerScroller(Context context) {
    mScroller = new OverScroller(context);
}
项目:AndroidOpen    文件:DropDownLinearLayout.java   
protected void initView(Context context) {
    fScroller = new OverScroller(context);
    this.setOverScrollMode(OVER_SCROLL_ALWAYS);
}
项目:GitHub    文件:FreeFlowContainer.java   
@Override
protected void init(Context context) {

    viewpool = new ViewPool();
    frames = new LinkedHashMap<Object, FreeFlowItem>();

    ViewConfiguration configuration = ViewConfiguration.get(context);
    maxFlingVelocity = configuration.getScaledMaximumFlingVelocity();
    minFlingVelocity = configuration.getScaledMinimumFlingVelocity();
    overflingDistance = configuration.getScaledOverflingDistance();
    /*overscrollDistance = configuration.getScaledOverscrollDistance();*/

    touchSlop = configuration.getScaledTouchSlop();

    scroller = new OverScroller(context);

    setEdgeEffectsEnabled(true);

}
项目:GitHub    文件:ScrollerProxy.java   
public GingerScroller(Context context) {
    mScroller = new OverScroller(context);
}