Java Code Examples for android.view.View#getVisibility()

The following examples show how to use android.view.View#getVisibility() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: EmptyTextProgressView.java    From TelePlus-Android with GNU General Public License v2.0 6 votes vote down vote up
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    inLayout = true;
    int width = r - l;
    int height = b - t;
    int childCount = getChildCount();
    for (int i = 0; i < childCount; i++) {
        View child = getChildAt(i);

        if (child.getVisibility() == GONE) {
            continue;
        }

        int x = (width - child.getMeasuredWidth()) / 2;
        int y;
        if (showAtCenter) {
            y = (height / 2 - child.getMeasuredHeight()) / 2;
        } else {
            y = (height - child.getMeasuredHeight()) / 2;
        }
        child.layout(x, y, x + child.getMeasuredWidth(), y + child.getMeasuredHeight());
    }
    inLayout = false;
}
 
Example 2
Source File: StatusBarUtil.java    From styT with Apache License 2.0 6 votes vote down vote up
/**
 * 设置状态栏颜色
 *
 * @param activity       需要设置的activity
 * @param color          状态栏颜色值
 * @param statusBarAlpha 状态栏透明度
 */

public static void setColor(Activity activity, @ColorInt int color, @IntRange(from = 0, to = 255) int statusBarAlpha) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        activity.getWindow().setStatusBarColor(calculateStatusColor(color, statusBarAlpha));
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView();
        View fakeStatusBarView = decorView.findViewById(FAKE_STATUS_BAR_VIEW_ID);
        if (fakeStatusBarView != null) {
            if (fakeStatusBarView.getVisibility() == View.GONE) {
                fakeStatusBarView.setVisibility(View.VISIBLE);
            }
            fakeStatusBarView.setBackgroundColor(calculateStatusColor(color, statusBarAlpha));
        } else {
            decorView.addView(createStatusBarView(activity, color, statusBarAlpha));
        }
        setRootView(activity);
    }
}
 
Example 3
Source File: XStatusBar.java    From XFrame with Apache License 2.0 6 votes vote down vote up
/**
 * 为DrawerLayout 布局设置状态栏变色(5.0以下无半透明效果,不建议使用)
 *
 * @param activity     需要设置的activity
 * @param drawerLayout DrawerLayout
 * @param color        状态栏颜色值
 */
@Deprecated
public static void setColorForDrawerLayoutDiff(Activity activity, DrawerLayout drawerLayout, @ColorInt int color) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        // 生成一个状态栏大小的矩形
        ViewGroup contentLayout = (ViewGroup) drawerLayout.getChildAt(0);
        View fakeStatusBarView = contentLayout.findViewById(FAKE_STATUS_BAR_VIEW_ID);
        if (fakeStatusBarView != null) {
            if (fakeStatusBarView.getVisibility() == View.GONE) {
                fakeStatusBarView.setVisibility(View.VISIBLE);
            }
            fakeStatusBarView.setBackgroundColor(calculateStatusColor(color, DEFAULT_STATUS_BAR_ALPHA));
        } else {
            // 添加 statusBarView 到布局中
            contentLayout.addView(createStatusBarView(activity, color), 0);
        }
        // 内容布局不是 LinearLayout 时,设置padding top
        if (!(contentLayout instanceof LinearLayout) && contentLayout.getChildAt(1) != null) {
            contentLayout.getChildAt(1).setPadding(0, getStatusBarHeight(activity), 0, 0);
        }
        // 设置属性
        setDrawerLayoutProperty(drawerLayout, contentLayout);
    }
}
 
Example 4
Source File: Flip.java    From Trebuchet with GNU General Public License v3.0 6 votes vote down vote up
@Override
public void screenScrolled(View v, float progress) {
    float rotation = -180.0f * Math.max(-1f, Math.min(1f, progress));

    v.setCameraDistance(mPagedView.mDensity * CAMERA_DISTANCE);
    v.setPivotX(v.getMeasuredWidth() * 0.5f);
    v.setPivotY(v.getMeasuredHeight() * 0.5f);
    v.setRotationY(rotation);

    if (progress >= -0.5f && progress <= 0.5f) {
        v.setTranslationX(v.getMeasuredWidth() * progress);
        if (v.getVisibility() != View.VISIBLE) {
            v.setVisibility(View.VISIBLE);
        }
    } else {
        v.setTranslationX(v.getMeasuredWidth() * -10f);
    }
}
 
Example 5
Source File: EmptyTextProgressView.java    From Telegram with GNU General Public License v2.0 6 votes vote down vote up
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    inLayout = true;
    int width = r - l;
    int height = b - t;
    int childCount = getChildCount();
    for (int i = 0; i < childCount; i++) {
        View child = getChildAt(i);

        if (child.getVisibility() == GONE) {
            continue;
        }

        int x = (width - child.getMeasuredWidth()) / 2;
        int y;
        if (showAtPos == 2) {
            y = (AndroidUtilities.dp(100) - child.getMeasuredHeight()) / 2 + getPaddingTop();
        } else if (showAtPos == 1) {
            y = (height / 2 - child.getMeasuredHeight()) / 2 + getPaddingTop();
        } else {
            y = (height - child.getMeasuredHeight()) / 2 + getPaddingTop();
        }
        child.layout(x, y, x + child.getMeasuredWidth(), y + child.getMeasuredHeight());
    }
    inLayout = false;
}
 
Example 6
Source File: OrientedViewPager.java    From FlippableStackView with Apache License 2.0 6 votes vote down vote up
/**
 * We only want the current page that is being shown to be touchable.
 */
@Override
public void addTouchables(ArrayList<View> views) {
    // Note that we don't call super.addTouchables(), which means that
    // we don't call View.addTouchables().  This is okay because a ViewPager
    // is itself not touchable.
    for (int i = 0; i < getChildCount(); i++) {
        final View child = getChildAt(i);
        if (child.getVisibility() == VISIBLE) {
            ItemInfo ii = infoForChild(child);
            if (ii != null && ii.position == mCurItem) {
                child.addTouchables(views);
            }
        }
    }
}
 
Example 7
Source File: LinearLayout.java    From android_9.0.0_r45 with Apache License 2.0 6 votes vote down vote up
private void forceUniformWidth(int count, int heightMeasureSpec) {
    // Pretend that the linear layout has an exact size.
    int uniformMeasureSpec = MeasureSpec.makeMeasureSpec(getMeasuredWidth(),
            MeasureSpec.EXACTLY);
    for (int i = 0; i< count; ++i) {
       final View child = getVirtualChildAt(i);
       if (child != null && child.getVisibility() != GONE) {
           LinearLayout.LayoutParams lp = ((LinearLayout.LayoutParams)child.getLayoutParams());

           if (lp.width == LayoutParams.MATCH_PARENT) {
               // Temporarily force children to reuse their old measured height
               // FIXME: this may not be right for something like wrapping text?
               int oldHeight = lp.height;
               lp.height = child.getMeasuredHeight();

               // Remeasue with new dimensions
               measureChildWithMargins(child, uniformMeasureSpec, 0, heightMeasureSpec, 0);
               lp.height = oldHeight;
           }
       }
    }
}
 
Example 8
Source File: PercentFrameLayout.java    From restcomm-android-sdk with GNU Affero General Public License v3.0 6 votes vote down vote up
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
  final int width = getDefaultSize(Integer.MAX_VALUE, widthMeasureSpec);
  final int height = getDefaultSize(Integer.MAX_VALUE, heightMeasureSpec);
  setMeasuredDimension(
      MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
      MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));

  final int childWidthMeasureSpec =
      MeasureSpec.makeMeasureSpec(width * widthPercent / 100, MeasureSpec.AT_MOST);
  final int childHeightMeasureSpec =
      MeasureSpec.makeMeasureSpec(height * heightPercent / 100, MeasureSpec.AT_MOST);
  for (int i = 0; i < getChildCount(); ++i) {
    final View child = getChildAt(i);
    if (child.getVisibility() != GONE) {
      child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
    }
  }
}
 
Example 9
Source File: RegisterActivity.java    From Expert-Android-Programming with MIT License 5 votes vote down vote up
private void showHint(View view) {
    view.setPivotX(0);
    view.setPivotY(view.getHeight());

    if (view.getVisibility() == View.INVISIBLE) {
        view.setVisibility(View.VISIBLE);
        Animator iconAnim = ObjectAnimator.ofPropertyValuesHolder(view,
                PropertyValuesHolder.ofFloat(View.ALPHA, 0f, 1f),
                PropertyValuesHolder.ofFloat(View.SCALE_Y, 0f, 1f));
        iconAnim.start();
    }

}
 
Example 10
Source File: FloatLabel.java    From AndroidFloatLabel with Apache License 2.0 5 votes vote down vote up
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void layoutChild(View child, int parentLeft, int parentTop, int parentRight, int parentBottom) {
    if (child.getVisibility() != GONE) {
        final LayoutParams lp = (LayoutParams) child.getLayoutParams();

        final int width = child.getMeasuredWidth();
        final int height = child.getMeasuredHeight();

        int childLeft;
        final int childTop = parentTop + lp.topMargin;

        int gravity = lp.gravity;
        if (gravity == -1) {
            gravity = Gravity.TOP | Gravity.START;
        }

        final int layoutDirection;
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
            layoutDirection = LAYOUT_DIRECTION_LTR;
        } else {
            layoutDirection = getLayoutDirection();
        }

        final int absoluteGravity = Gravity.getAbsoluteGravity(gravity, layoutDirection);

        switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
            case Gravity.CENTER_HORIZONTAL:
                childLeft = parentLeft + (parentRight - parentLeft - width) / 2 + lp.leftMargin - lp.rightMargin;
                break;
            case Gravity.END:
                childLeft = parentRight - width - lp.rightMargin;
                break;
            case Gravity.START:
            default:
                childLeft = parentLeft + lp.leftMargin;
        }

        child.layout(childLeft, childTop, childLeft + width, childTop + height);
    }
}
 
Example 11
Source File: SlidingPaneLayout.java    From V.FlyoutTest with MIT License 5 votes vote down vote up
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
    final AccessibilityNodeInfoCompat superNode = AccessibilityNodeInfoCompat.obtain(info);
    super.onInitializeAccessibilityNodeInfo(host, superNode);
    copyNodeInfoNoChildren(info, superNode);
    superNode.recycle();

    info.setClassName(SlidingPaneLayout.class.getName());
    info.setSource(host);

    final ViewParent parent = ViewCompat.getParentForAccessibility(host);
    if (parent instanceof View) {
        info.setParent((View) parent);
    }

    // This is a best-approximation of addChildrenForAccessibility()
    // that accounts for filtering.
    final int childCount = getChildCount();
    for (int i = 0; i < childCount; i++) {
        final View child = getChildAt(i);
        if (!filter(child) && (child.getVisibility() == View.VISIBLE)) {
            // Force importance to "yes" since we can't read the value.
            ViewCompat.setImportantForAccessibility(
                    child, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES);
            info.addChild(child);
        }
    }
}
 
Example 12
Source File: ActionBarMenuItem.java    From Telegram-FOSS with GNU General Public License v2.0 5 votes vote down vote up
public void showSubItem(int id) {
    if (popupLayout == null) {
        return;
    }
    View view = popupLayout.findViewWithTag(id);
    if (view != null && view.getVisibility() != VISIBLE) {
        view.setVisibility(VISIBLE);
        measurePopup = true;
    }
}
 
Example 13
Source File: ViewUtil.java    From star-zone-android with Apache License 2.0 5 votes vote down vote up
public static void setViewsVisible(int visible, View... views) {
    for (View view : views) {
        if (view.getVisibility() != visible) {
            view.setVisibility(visible);
        }
    }
}
 
Example 14
Source File: AdapterView.java    From Klyph with MIT License 5 votes vote down vote up
@Override
public boolean dispatchPopulateAccessibilityEvent( AccessibilityEvent event ) {
	View selectedView = getSelectedView();
	if ( selectedView != null && selectedView.getVisibility() == VISIBLE
			&& selectedView.dispatchPopulateAccessibilityEvent( event ) ) {
		return true;
	}
	return false;
}
 
Example 15
Source File: ItemTouchHelperExtension.java    From CrazyDaily with Apache License 2.0 5 votes vote down vote up
private boolean isInBoundsClickable(int x, int y, View child) {
    int[] location = new int[2];
    child.getLocationOnScreen(location);
    Rect rect = new Rect(location[0], location[1], location[0] + child.getWidth(), location[1] + child.getHeight());
    if (rect.contains(x, y) && ViewCompat.hasOnClickListeners(child)
            && child.getVisibility() == View.VISIBLE) {
        return true;
    }
    return false;
}
 
Example 16
Source File: SlidingUpPanelLayout.java    From AndroidSlidingUpPanel-foursquare-map-demo with Apache License 2.0 4 votes vote down vote up
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    final int paddingLeft = getPaddingLeft();
    final int paddingTop = getPaddingTop();
    final int slidingTop = getSlidingTop();

    final int childCount = getChildCount();

    if (mFirstLayout) {
        switch (mSlideState) {
        case EXPANDED:
            mSlideOffset = mCanSlide ? 0.f : 1.f;
            break;
        case ANCHORED:
            mSlideOffset = mCanSlide ? mAnchorPoint : 1.f;
            break;
        default:
            mSlideOffset = 1.f;
            break;
        }
    }

    for (int i = 0; i < childCount; i++) {
        final View child = getChildAt(i);

        if (child.getVisibility() == GONE) {
            continue;
        }

        final LayoutParams lp = (LayoutParams) child.getLayoutParams();
        final int childHeight = child.getMeasuredHeight();

        if (lp.slideable) {
            mSlideRange = childHeight - (mPanelHeight + mScrollableViewTopPadding);
        }

        int childTop;
        if (mIsSlidingUp) {
            childTop = lp.slideable ? slidingTop + (int) (mSlideRange * mSlideOffset) : paddingTop;
        } else {
            childTop = lp.slideable ? slidingTop - (int) (mSlideRange * mSlideOffset) : paddingTop;

        }
        final int childBottom = childTop + childHeight;
        final int childLeft = paddingLeft;
        final int childRight = childLeft + child.getMeasuredWidth();

        child.layout(childLeft, childTop, childRight, childBottom);
    }

    if (mFirstLayout) {
        updateObscuredViewVisibility();
    }

    mFirstLayout = false;
}
 
Example 17
Source File: ViewUtils.java    From Qiitanium with MIT License 4 votes vote down vote up
public static boolean isVisible(View v) {
  return (v.getVisibility() == View.VISIBLE);
}
 
Example 18
Source File: SlidingPaneLayout.java    From KlyphMessenger with MIT License 4 votes vote down vote up
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {

    final int width = r - l;
    final int paddingLeft = getPaddingLeft();
    final int paddingRight = getPaddingRight();
    final int paddingTop = getPaddingTop();

    final int childCount = getChildCount();
    int xStart = paddingLeft;
    int nextXStart = xStart;

    if (mFirstLayout) {
        mSlideOffset = mCanSlide && mPreservedOpenState ? 1.f : 0.f;
    }

    for (int i = 0; i < childCount; i++) {
        final View child = getChildAt(i);

        if (child.getVisibility() == GONE) {
            continue;
        }

        final LayoutParams lp = (LayoutParams) child.getLayoutParams();

        final int childWidth = child.getMeasuredWidth();
        int offset = 0;

        if (lp.slideable) {
            final int margin = lp.leftMargin + lp.rightMargin;
            final int range = Math.min(nextXStart,
                    width - paddingRight - mOverhangSize) - xStart - margin;
            mSlideRange = range;
            lp.dimWhenOffset = true;//xStart + lp.leftMargin + range + childWidth / 2 >
                    //width - paddingRight;
            xStart += (int) (range * mSlideOffset) + lp.leftMargin;
        } else if (mCanSlide && mParallaxBy != 0) {
            offset = (int) ((1 - mSlideOffset) * mParallaxBy);
            xStart = nextXStart;
        } else {
            xStart = nextXStart;
        }

        final int childLeft = xStart - offset;
        final int childRight = childLeft + childWidth;
        final int childTop = paddingTop;
        final int childBottom = childTop + child.getMeasuredHeight();
        child.layout(childLeft, paddingTop, childRight, childBottom);

        nextXStart += child.getWidth();
    }

    if (mFirstLayout) {
        if (mCanSlide) {
            if (mParallaxBy != 0) {
                parallaxOtherViews(mSlideOffset);
            }
            if (((LayoutParams) mSlideableView.getLayoutParams()).dimWhenOffset) {
                dimChildView(mSlideableView, mSlideOffset, mSliderFadeColor);
            }
        } else {
            // Reset the dim level of all children; it's irrelevant when nothing moves.
            for (int i = 0; i < childCount; i++) {
                dimChildView(getChildAt(i), 0, mSliderFadeColor);
            }
        }
        updateObscuredViewsVisibility(mSlideableView);
    }

    mFirstLayout = false;
}
 
Example 19
Source File: Stack.java    From Trebuchet with GNU General Public License v3.0 4 votes vote down vote up
@Override
public void screenScrolled(View v, float progress) {
    final boolean isRtl = mPagedView.isLayoutRtl();
    float interpolatedProgress;
    float translationX;
    float maxScrollProgress = Math.max(0, progress);
    float minScrollProgress = Math.min(0, progress);

    if (mPagedView.isLayoutRtl()) {
        translationX = maxScrollProgress * v.getMeasuredWidth();
        interpolatedProgress = mZInterpolator.getInterpolation(Math.abs(maxScrollProgress));
    } else {
        translationX = minScrollProgress * v.getMeasuredWidth();
        interpolatedProgress = mZInterpolator.getInterpolation(Math.abs(minScrollProgress));
    }
    float scale = (1 - interpolatedProgress) + interpolatedProgress * TRANSITION_SCALE_FACTOR;

    float alpha;
    if (isRtl && (progress > 0)) {
        alpha = mAlphaInterpolator.getInterpolation(1 - Math.abs(maxScrollProgress));
    } else if (!isRtl && (progress < 0)) {
        alpha = mAlphaInterpolator.getInterpolation(1 - Math.abs(progress));
    } else {
        // On large screens we need to fade the page as it nears its leftmost position
        alpha = mLeftScreenAlphaInterpolator.getInterpolation(1 - progress);
    }

    v.setTranslationX(translationX);
    v.setScaleX(scale);
    v.setScaleY(scale);
    if (v instanceof CellLayout) {
        ((CellLayout) v).getShortcutsAndWidgets().setAlpha(alpha);
    } else {
        v.setAlpha(alpha);
    }

    // If the view has 0 alpha, we move it off screen so as to prevent
    // it from accepting touches
    if (alpha == 0) {
        v.setTranslationX(v.getMeasuredWidth() * -10f);
    } else if (v.getVisibility() != View.VISIBLE) {
        v.setVisibility(View.VISIBLE);
    }
}
 
Example 20
Source File: SlidingUpPanelLayout.java    From AndroidSlidingUpPanel with Apache License 2.0 4 votes vote down vote up
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    final int paddingLeft = getPaddingLeft();
    final int paddingTop = getPaddingTop();

    final int childCount = getChildCount();

    if (mFirstLayout) {
        switch (mSlideState) {
            case EXPANDED:
                mSlideOffset = mMaxSlideOffset;
                break;
            case ANCHORED:
                mSlideOffset = mAnchorPoint;
                break;
            case HIDDEN:
                int newTop = computePanelTopPosition(0.0f) + (mIsSlidingUp ? +mPanelHeight : -mPanelHeight);
                mSlideOffset = computeSlideOffset(newTop);
                break;
            default:
                mSlideOffset = 0.f;
                break;
        }
    }

    for (int i = 0; i < childCount; i++) {
        final View child = getChildAt(i);
        final LayoutParams lp = (LayoutParams) child.getLayoutParams();

        // Always layout the sliding view on the first layout
        if (child.getVisibility() == GONE && (i == 0 || mFirstLayout)) {
            continue;
        }

        final int childHeight = child.getMeasuredHeight();
        int childTop = paddingTop;

        if (child == mSlideableView) {
            childTop = computePanelTopPosition(mSlideOffset);
        }

        if (!mIsSlidingUp) {
            if (child == mMainView && !mOverlayContent) {
                childTop = computePanelTopPosition(mSlideOffset) + mSlideableView.getMeasuredHeight();
            }
        }
        final int childBottom = childTop + childHeight;
        final int childLeft = paddingLeft + lp.leftMargin;
        final int childRight = childLeft + child.getMeasuredWidth();

        child.layout(childLeft, childTop, childRight, childBottom);
    }

    if (mFirstLayout) {
        updateObscuredViewVisibility();
    }
    applyParallaxForCurrentSlideOffset();

    mFirstLayout = false;
}