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

The following examples show how to use android.view.View#getVisibility() . These examples are extracted from open source projects. 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
@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 Project: styT   File: StatusBarUtil.java    License: 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 Project: XFrame   File: XStatusBar.java    License: 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 Project: Trebuchet   File: Flip.java    License: 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 Project: android_9.0.0_r45   File: LinearLayout.java    License: 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 6
@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 7
/**
 * 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 8
@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 9
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 10
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 11
Source Project: AndroidFloatLabel   File: FloatLabel.java    License: 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 12
Source Project: V.FlyoutTest   File: SlidingPaneLayout.java    License: 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 13
Source Project: Klyph   File: AdapterView.java    License: 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 14
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 15
Source Project: star-zone-android   File: ViewUtil.java    License: 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 16
@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;
}
 
Example 17
Source Project: Trebuchet   File: Stack.java    License: 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 18
Source Project: KlyphMessenger   File: SlidingPaneLayout.java    License: 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 Project: Qiitanium   File: ViewUtils.java    License: MIT License 4 votes vote down vote up
public static boolean isVisible(View v) {
  return (v.getVisibility() == View.VISIBLE);
}
 
Example 20
@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;
}