@Override public void handleLeftPage(View view, float position) { ViewCompat.setPivotX(view, view.getWidth()); ViewCompat.setScaleX(view, 1.0f + position); }
@Override public void handleLeftPage(View view, float position) { ViewCompat.setPivotX(view, view.getMeasuredWidth()); ViewCompat.setPivotY(view, view.getMeasuredHeight() * 0.5f); ViewCompat.setRotationY(view, mMaxRotation * position); }
@Override public void handleInvisiblePage(View view, float position) { ViewCompat.setPivotX(view, view.getMeasuredWidth() * 0.5f); ViewCompat.setPivotY(view, view.getMeasuredHeight()); ViewCompat.setRotation(view, 0); }
@Override public void handleInvisiblePage(View view, float position) { ViewCompat.setPivotX(view, view.getMeasuredWidth()); ViewCompat.setPivotY(view, view.getMeasuredHeight() * 0.5f); ViewCompat.setRotationY(view, 0); }
@Override public void handleLeftPage(View view, float position) { float rotation = (mMaxRotation * position); ViewCompat.setPivotX(view, view.getMeasuredWidth() * 0.5f); ViewCompat.setPivotY(view, view.getMeasuredHeight()); ViewCompat.setRotation(view, rotation); }
@Override public void handleRightPage(View view, float position) { ViewCompat.setPivotX(view, 0); ViewCompat.setPivotY(view, view.getMeasuredHeight() * 0.5f); ViewCompat.setRotationY(view, mMaxRotation * position); }
@Override public void handleRightPage(View view, float position) { ViewCompat.setPivotX(view, 0); ViewCompat.setScaleX(view, 1.0f - position); ViewCompat.setAlpha(view, 1); }
@Override public void handleRightPage(View view, float position) { ViewCompat.setTranslationX(view, -view.getWidth() * position); ViewCompat.setPivotX(view, view.getWidth() * 0.5f); ViewCompat.setPivotY(view, view.getHeight() * 0.5f); ViewCompat.setScaleX(view, 1 - position); ViewCompat.setScaleY(view, 1 - position); ViewCompat.setAlpha(view, 1 - position); }
@Override public void handleLeftPage(View view, float position) { ViewCompat.setTranslationX(view, -view.getWidth() * position); ViewCompat.setPivotX(view, view.getWidth() * 0.5f); ViewCompat.setPivotY(view, view.getHeight() * 0.5f); ViewCompat.setScaleX(view, 1 + position); ViewCompat.setScaleY(view, 1 + position); ViewCompat.setAlpha(view, 1 + position); }
private void applyAlphaScaleEffect(@NonNull ViewGroup vg, @NonNull TransformParams params, int viewHeight) { int j = 0; for (int i = 0, cnt = vg.getChildCount(); i < cnt; i++) { final View view = vg.getChildAt(i); ViewCompat.setPivotX(view, params.pivotX); ViewCompat.setAlpha(view, params.alphaChild); boolean isHeaderView; if (params.floorDiff == 1f || view.getTag(R.id.tail_header_tag) == null) { isHeaderView = view.getY() < viewHeight; view.setTag(R.id.tail_header_tag, isHeaderView); } else { isHeaderView = (Boolean) view.getTag(R.id.tail_header_tag); } final float scale = isHeaderView ? params.scale : params.scaleChild; ViewCompat.setScaleX(view, scale); ViewCompat.setScaleY(view, scale); if (isHeaderView) { ViewCompat.setTranslationY(view, params.offsetY); } else { ViewCompat.setTranslationY(view, j * params.offsetY); j--; } } }
@Override public void handleRightPage(View view, float position) { ViewCompat.setTranslationX(view, -view.getWidth() * position); ViewCompat.setPivotX(view, view.getWidth() * 0.5f); ViewCompat.setPivotY(view, view.getHeight() * 0.5f); ViewCompat.setScaleX(view, 1 + position); ViewCompat.setScaleY(view, 1 + position); if (position > 0.95f) { ViewCompat.setAlpha(view, 0); } else { ViewCompat.setAlpha(view, 1); } }
@Override public void handleLeftPage(View view, float position) { ViewCompat.setTranslationX(view, -view.getWidth() * position); ViewCompat.setPivotX(view, view.getWidth() * 0.5f); ViewCompat.setPivotY(view, view.getHeight() * 0.5f); ViewCompat.setScaleX(view, 1 + position); ViewCompat.setScaleY(view, 1 + position); if (position < -0.95f) { ViewCompat.setAlpha(view, 0); } else { ViewCompat.setAlpha(view, 1); } }
@Override public void handleRightPage(View view, float position) { ViewCompat.setTranslationX(view, -view.getWidth() * position); ViewCompat.setPivotX(view, view.getWidth() * 0.5f); ViewCompat.setPivotY(view, view.getHeight() * 0.5f); ViewCompat.setScaleX(view, 1 - position); ViewCompat.setScaleY(view, 1 - position); if (position > 0.95f) { ViewCompat.setAlpha(view, 0); } else { ViewCompat.setAlpha(view, 1); } }
@Override public void handleLeftPage(View view, float position) { ViewCompat.setTranslationX(view, -view.getWidth() * position); ViewCompat.setPivotX(view, view.getWidth() * 0.5f); ViewCompat.setPivotY(view, view.getHeight() * 0.5f); ViewCompat.setScaleX(view, 1 + position); ViewCompat.setScaleY(view, 1 + position); if (position < -0.95f) { ViewCompat.setAlpha(view, 0); } else { ViewCompat.setAlpha(view, 1); } }
private void onItemScrolled(RecyclerView recyclerView, int dx, int dy) { final float ratio = computeRatio(recyclerView); final float footerRatio = Math.max(0, Math.min(FOOTER_RATIO_START, ratio) - FOOTER_RATIO_DIFF) / FOOTER_RATIO_MAX; final float avatarRatio = Math.max(0, Math.min(AVATAR_RATIO_START, ratio) - AVATAR_RATIO_DIFF) / AVATAR_RATIO_MAX; final float answerRatio = Math.max(0, Math.min(ANSWER_RATIO_START, ratio) - ANSWER_RATIO_DIFF) / ANSWER_RATIO_MAX; final float middleRatio = Math.max(0, Math.min(MIDDLE_RATIO_START, ratio) - MIDDLE_RATIO_DIFF) / MIDDLE_RATIO_MAX; ViewCompat.setPivotY(mFooter, 0); ViewCompat.setScaleY(mFooter, footerRatio); ViewCompat.setAlpha(mFooter, footerRatio); ViewCompat.setPivotY(mMiddleAnswer, mMiddleAnswer.getHeight()); ViewCompat.setScaleY(mMiddleAnswer, 1f - answerRatio); ViewCompat.setAlpha(mMiddleAnswer, 0.5f - answerRatio); ViewCompat.setAlpha(mHeaderCaption1, answerRatio); ViewCompat.setAlpha(mHeaderCaption2, 1f - answerRatio); final View mc2 = mMiddleCollapsible.get(1); ViewCompat.setPivotX(mc2, 0); ViewCompat.setPivotY(mc2, mc2.getHeight() / 2); for (final View view: mMiddleCollapsible) { ViewCompat.setScaleX(view, avatarRatio); ViewCompat.setScaleY(view, avatarRatio); ViewCompat.setAlpha(view, avatarRatio); } final ViewGroup.LayoutParams lp = mMiddle.getLayoutParams(); lp.height = m120dp - (int)(m10dp * (1f - middleRatio)); mMiddle.setLayoutParams(lp); }
@Override public void transformPage(@NonNull HeaderItem item, float scrollPosition) { final View header = item.getHeader(); final TailItemTransformer.TransformParams params = mTransformer.getParamsForPosition( scrollPosition, header.getWidth(), header.getHeight()); ViewCompat.setPivotX(header, params.pivotX); ViewCompat.setScaleX(header, params.scale); ViewCompat.setScaleY(header, params.scale); ViewCompat.setAlpha(header, scrollPosition < 0 ? params.alphaLeft : params.alphaRight); ViewCompat.setTranslationY(header, params.offsetY); ViewCompat.setAlpha(item.getHeaderAlphaView(), 1 - params.alphaChild); mTransformer.transformPage(item, scrollPosition); }
public static void resetPageTransformer(List<? extends View> views) { if (views == null) { return; } for (View view : views) { view.setVisibility(View.VISIBLE); ViewCompat.setAlpha(view, 1); ViewCompat.setPivotX(view, view.getMeasuredWidth() * 0.5f); ViewCompat.setPivotY(view, view.getMeasuredHeight() * 0.5f); ViewCompat.setTranslationX(view, 0); ViewCompat.setTranslationY(view, 0); ViewCompat.setScaleX(view, 1); ViewCompat.setScaleY(view, 1); ViewCompat.setRotationX(view, 0); ViewCompat.setRotationY(view, 0); ViewCompat.setRotation(view, 0); } }
public DurX pivotX(float percent) { if (view != null) { ViewCompat.setPivotX(view, view.getWidth() * percent); } return this; }
ViewCompat.setPivotX(label, 0); ViewCompat.setPivotY(label, 0);
public DurX pivotX(float percent) { if (view != null) { ViewCompat.setPivotX(view, view.getWidth() * percent); } return this; }