android.view.View#getVisibility ( )源码实例Demo

下面列出了android.view.View#getVisibility ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: TelePlus-Android   文件: EmptyTextProgressView.java
@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;
}
 
源代码2 项目: styT   文件: StatusBarUtil.java
/**
 * 设置状态栏颜色
 *
 * @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);
    }
}
 
源代码3 项目: XFrame   文件: XStatusBar.java
/**
 * 为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);
    }
}
 
源代码4 项目: Trebuchet   文件: Flip.java
@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);
    }
}
 
源代码5 项目: android_9.0.0_r45   文件: LinearLayout.java
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;
           }
       }
    }
}
 
源代码6 项目: restcomm-android-sdk   文件: PercentFrameLayout.java
@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);
    }
  }
}
 
源代码7 项目: FlippableStackView   文件: OrientedViewPager.java
/**
 * 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);
            }
        }
    }
}
 
源代码8 项目: Telegram   文件: EmptyTextProgressView.java
@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;
}
 
源代码9 项目: Telegram-FOSS   文件: ActionBarMenuItem.java
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;
    }
}
 
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();
    }

}
 
源代码11 项目: AndroidFloatLabel   文件: FloatLabel.java
@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);
    }
}
 
源代码12 项目: V.FlyoutTest   文件: SlidingPaneLayout.java
@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);
        }
    }
}
 
源代码13 项目: Klyph   文件: AdapterView.java
@Override
public boolean dispatchPopulateAccessibilityEvent( AccessibilityEvent event ) {
	View selectedView = getSelectedView();
	if ( selectedView != null && selectedView.getVisibility() == VISIBLE
			&& selectedView.dispatchPopulateAccessibilityEvent( event ) ) {
		return true;
	}
	return false;
}
 
源代码14 项目: CrazyDaily   文件: ItemTouchHelperExtension.java
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;
}
 
源代码15 项目: star-zone-android   文件: ViewUtil.java
public static void setViewsVisible(int visible, View... views) {
    for (View view : views) {
        if (view.getVisibility() != visible) {
            view.setVisibility(visible);
        }
    }
}
 
@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;
}
 
源代码17 项目: Trebuchet   文件: Stack.java
@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);
    }
}
 
源代码18 项目: KlyphMessenger   文件: SlidingPaneLayout.java
@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;
}
 
源代码19 项目: Qiitanium   文件: ViewUtils.java
public static boolean isVisible(View v) {
  return (v.getVisibility() == View.VISIBLE);
}
 
@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;
}
 
 方法所在类
 同类方法