android.view.ViewGroup#getLayoutParams ( )源码实例Demo

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

源代码1 项目: android-art-res   文件: DemoActivity_2.java
private void initView() {
    LayoutInflater inflater = getLayoutInflater();
    mListContainer = (HorizontalScrollViewEx) findViewById(R.id.container);
    final int screenWidth = MyUtils.getScreenMetrics(this).widthPixels;
    final int screenHeight = MyUtils.getScreenMetrics(this).heightPixels;
    for (int i = 0; i < 1; i++) {
        ViewGroup layout = (ViewGroup) inflater.inflate(
                R.layout.content_layout, mListContainer, false);
        layout.getLayoutParams().width = screenWidth;
        TextView textView = (TextView) layout.findViewById(R.id.title);
        textView.setText("page " + (i + 1));
        layout.setBackgroundColor(Color.rgb(255 / (i + 1), 255 / (i + 1), 0));
        createList(layout);
        mListContainer.addView(layout);
    }
}
 
源代码2 项目: ExpressHelper   文件: SwipeBackLayout.java
public void attachToActivity(Activity activity) {
    mActivity = activity;
    TypedArray a = activity.getTheme().obtainStyledAttributes(new int[]{
            android.R.attr.windowBackground
    });
    int background = a.getResourceId(0, 0);
    a.recycle();

    ViewGroup decor = (ViewGroup) activity.getWindow().getDecorView();
    ViewGroup decorChild = (ViewGroup) decor.getChildAt(0);
    decorChild.setBackgroundResource(background);
    LayoutParams p = (LayoutParams) decorChild.getLayoutParams();
    FrameLayout newRoot = new FrameLayout(getContext());
    decor.removeView(decorChild);
    newRoot.addView(decorChild, p);
    p = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    addView(newRoot, p);
    setContentView(newRoot);
    setLayoutParams(p);
    decor.addView(this, p);
}
 
源代码3 项目: QuickLyric   文件: IntroScreenSlidePagerAdapter.java
@TargetApi(19)
private void showFloatingFrameButton(View layout) {
    boolean isLandscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
    boolean shouldHideFloatingFrame = false;

    ViewGroup frame = layout.findViewById(R.id.NL_frame);
    View floatingFrame = layout.findViewById(R.id.floating_frame);
    floatingFrame.setVisibility(nlEnabled && !shouldHideFloatingFrame ? View.VISIBLE : isLandscape ? View.GONE : View.INVISIBLE);
    if (frame != null) {
        frame.setVisibility(isLandscape && nlEnabled ? View.INVISIBLE : View.VISIBLE);
        RelativeLayout.LayoutParams frameParams = (RelativeLayout.LayoutParams) frame.getLayoutParams();

        frameParams.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        frameParams.setMargins(frameParams.leftMargin, frameParams.topMargin, frameParams.rightMargin, 0);
        frameParams.removeRule(RelativeLayout.CENTER_VERTICAL);
        frame.setLayoutParams(frameParams);
    }
}
 
源代码4 项目: GankGirl   文件: TipsUtils.java
private static void removeContainerView(ViewGroup tipsContainerView, View targetView) {
    ViewGroup parent = (ViewGroup) tipsContainerView.getParent();
    ViewGroup.LayoutParams targetParams = tipsContainerView.getLayoutParams();
    int index = parent.indexOfChild(tipsContainerView);
    parent.removeViewAt(index);
    if (targetView.getParent() != null) {
        ((ViewGroup) targetView.getParent()).removeView(targetView);
    }
    parent.addView(targetView, index, targetParams);
}
 
源代码5 项目: dynamic-support   文件: DynamicDrawerActivity.java
/**
 * Configure navigation drawer for the persistent mode.
 */
private void configureDrawer() {
    if (isPersistentDrawer()) {
        mDrawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
        mDrawer.setScrimColor(Color.TRANSPARENT);
        mDrawerToggle.setDrawerIndicatorEnabled(false);

        ViewGroup frame = findViewById(R.id.ads_activity_root);

        if (frame != null && frame.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
            ViewGroup.MarginLayoutParams params =
                    (ViewGroup.MarginLayoutParams) frame.getLayoutParams();

            if (DynamicLocaleUtils.isLayoutRtl()) {
                params.rightMargin = getResources().getDimensionPixelOffset(
                        R.dimen.ads_margin_content_start);
            } else {
                params.leftMargin = getResources().getDimensionPixelOffset(
                        R.dimen.ads_margin_content_start);
            }

            frame.setLayoutParams(params);
        }
    } else {
        if (isDrawerLocked()) {
            mDrawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
            getContentView().post(new Runnable() {
                @Override
                public void run() {
                    mDrawer.closeDrawers();
                }
            });
        }
    }
}
 
源代码6 项目: MyHearts   文件: DragLayoutOne.java
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    if (mIsOnce) {
        mWapper = (LinearLayout) getChildAt(0);
        mMenuViewGroup = (ViewGroup) mWapper.getChildAt(0);
        mContentViewGroup = (ViewGroup) mWapper.getChildAt(1);
        mMenuWidth = mMenuViewGroup.getLayoutParams().width = mScreenWidth - mMenuRightPadding;
        mContentViewGroup.getLayoutParams().width = mScreenWidth;
        mIsOnce = false;
    }
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
 
源代码7 项目: StateManager   文件: StateViewHelper.java
/**
 * 显示视图
 * 如果stateView为null,则需要创建
 *
 * @return
 */
public static boolean showStater(Context context, ViewGroup overallView, IState stater) {

    if (stater == null || overallView ==null) {
        return false;
    }
    View staterView = stater.getView();
    if (staterView == null) {
        stater.onStateCreate(context, overallView);
        staterView = stater.getView();
        if (staterView == null) {
            return false;
        }
    }

    ViewGroup.LayoutParams layoutParams = overallView.getLayoutParams();
    if (layoutParams == null) {
        layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    }
    layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
    layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
    if (overallView.indexOfChild(staterView) < 0 && staterView.getParent() == null) {
        overallView.addView(staterView, layoutParams);
    }
    stater.getView().setVisibility(View.VISIBLE);
    stater.onStateResume();
    return true;
}
 
/**
 * Same as previous, but with given size in case subTreeRoot itself has layout_width or layout_height = "wrap_content"
 */
private static void wrapContentAgain(ViewGroup subTreeRoot, boolean relayoutAllNodes,
                                     int subTreeRootWidthMeasureSpec, int subTreeRootHeightMeasureSpec)
{
    assert( "main".equals( Thread.currentThread().getName() ) );

    if(subTreeRoot == null)
        return;
    LayoutParams layoutParams = subTreeRoot.getLayoutParams();

    // --- First, we force measure on the subTree
    int widthMeasureSpec 	= subTreeRootWidthMeasureSpec;
    // When LayoutParams.MATCH_PARENT and Width > 0, we apply measured width to avoid getting dimensions too big
    if( layoutParams.width  != LayoutParams.WRAP_CONTENT && subTreeRoot.getWidth() > 0 )
        widthMeasureSpec 	=  MeasureSpec.makeMeasureSpec( subTreeRoot.getWidth(), MeasureSpec.EXACTLY );
    int heightMeasureSpec 	= subTreeRootHeightMeasureSpec;
    // When LayoutParams.MATCH_PARENT and Height > 0, we apply measured height to avoid getting dimensions too big
    if( layoutParams.height != LayoutParams.WRAP_CONTENT && subTreeRoot.getHeight() > 0 )
        heightMeasureSpec 	=  MeasureSpec.makeMeasureSpec( subTreeRoot.getHeight(), MeasureSpec.EXACTLY );
    // This measure recursively the whole sub-tree
    subTreeRoot.measure( widthMeasureSpec, heightMeasureSpec );

    // --- Then recurse on all children to correct the sizes
    recurseWrapContent( subTreeRoot, relayoutAllNodes );

    // --- RequestLayout to finish properly
    subTreeRoot.requestLayout();
}
 
@Override
public RecyclerView.ViewHolder onCreateViewHolder(final ViewGroup viewGroup) {
	viewGroup.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;

	final FrameLayout frameLayout = new FrameLayout(viewGroup.getContext());
	return new RecyclerView.ViewHolder(frameLayout) {};
}
 
/**
 * Same as previous, but with given size in case subTreeRoot itself has layout_width or layout_height = "wrap_content"
 */
public static void wrapContentAgain( ViewGroup subTreeRoot, boolean relayoutAllNodes,
		int subTreeRootWidthMeasureSpec, int subTreeRootHeightMeasureSpec  )
{
	Log.d(TAG, "+++ LayoutWrapContentUpdater wrapContentAgain on subTreeRoot=["+ subTreeRoot +"], with w="
			+ subTreeRootWidthMeasureSpec +" and h="+ subTreeRootHeightMeasureSpec );
	assert( "main".equals( Thread.currentThread().getName() ) );
	
	if (subTreeRoot == null)
		return;
	LayoutParams layoutParams = subTreeRoot.getLayoutParams();

	// --- First, we force measure on the subTree
	int widthMeasureSpec 	= subTreeRootWidthMeasureSpec;
	// When LayoutParams.MATCH_PARENT and Width > 0, we apply measured width to avoid getting dimensions too big
	if ( layoutParams.width  != LayoutParams.WRAP_CONTENT && subTreeRoot.getWidth() > 0 )
		widthMeasureSpec 	=  MeasureSpec.makeMeasureSpec( subTreeRoot.getWidth(), MeasureSpec.EXACTLY );
	int heightMeasureSpec 	= subTreeRootHeightMeasureSpec;
	// When LayoutParams.MATCH_PARENT and Height > 0, we apply measured height to avoid getting dimensions too big
	if ( layoutParams.height != LayoutParams.WRAP_CONTENT && subTreeRoot.getHeight() > 0 )
		heightMeasureSpec 	=  MeasureSpec.makeMeasureSpec( subTreeRoot.getHeight(), MeasureSpec.EXACTLY );
	// This measure recursively the whole sub-tree
	subTreeRoot.measure( widthMeasureSpec, heightMeasureSpec ); 

	// --- Then recurse on all children to correct the sizes 
	recurseWrapContent( subTreeRoot, relayoutAllNodes );

	// --- RequestLayout to finish properly
	subTreeRoot.requestLayout();		
	return;
}
 
源代码11 项目: SwipeableLayout   文件: SwipeableLayout.java
private void resetForContainer(ViewGroup aContainer, View aChild) {
    if (aContainer.getChildAt(0).getTag() == null) return;

    aContainer.removeViewAt(0);
    aContainer.addView(aChild, 0, aChild.getLayoutParams());
    aContainer.getLayoutParams().height = LayoutParams.WRAP_CONTENT;
    aContainer.requestLayout();
}
 
源代码12 项目: labelview   文件: LabelView.java
public void remove() {
    if (getParent() == null || _labelViewContainerID == -1) {
        return;
    }

    ViewGroup frameContainer = (ViewGroup) getParent();
    assert (frameContainer.getChildCount() == 2);
    View target = frameContainer.getChildAt(0);

    ViewGroup parentContainer = (ViewGroup) frameContainer.getParent();
    int groupIndex = parentContainer.indexOfChild(frameContainer);
    if (frameContainer.getParent() instanceof RelativeLayout) {
        for (int i = 0; i < parentContainer.getChildCount(); i++) {
            if (i == groupIndex) {
                continue;
            }
            View view = parentContainer.getChildAt(i);
            RelativeLayout.LayoutParams para = (RelativeLayout.LayoutParams) view.getLayoutParams();
            for (int j = 0; j < para.getRules().length; j++) {
                if (para.getRules()[j] == _labelViewContainerID) {
                    para.getRules()[j] = target.getId();
                }
            }
            view.setLayoutParams(para);
        }
    }

    ViewGroup.LayoutParams frameLayoutParam = frameContainer.getLayoutParams();
    target.setLayoutParams(frameLayoutParam);
    parentContainer.removeViewAt(groupIndex);
    frameContainer.removeView(target);
    frameContainer.removeView(this);
    parentContainer.addView(target,groupIndex);
    _labelViewContainerID = -1;
}
 
源代码13 项目: MaterialViewPager   文件: MaterialViewPager.java
@Override
protected void onFinishInflate() {
    super.onFinishInflate();

    //add @layout/material_view_pager_layout as child, containing all the MaterialViewPager views
    addView(LayoutInflater.from(getContext()).inflate(R.layout.material_view_pager_layout, this, false));

    headerBackgroundContainer = (ViewGroup) findViewById(R.id.headerBackgroundContainer);
    pagerTitleStripContainer = (ViewGroup) findViewById(R.id.pagerTitleStripContainer);
    viewpagerContainer = (ViewGroup) findViewById(R.id.viewpager_layout);
    logoContainer = (ViewGroup) findViewById(R.id.logoContainer);

    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    if (settings.disableToolbar) {
        mToolbar.setVisibility(INVISIBLE);
    }

    { //replace the viewpager ?
        int viewPagerLayoutId = settings.viewpagerId;
        if (viewPagerLayoutId != -1) {
            viewpagerContainer.removeAllViews();
            viewpagerContainer.addView(LayoutInflater.from(getContext()).inflate(viewPagerLayoutId, viewpagerContainer, false));
        }
    }

    mViewPager = (ViewPager) findViewById(R.id.materialviewpager_viewpager);

    mViewPager.addOnPageChangeListener(this);

    //inflate subviews defined in attributes

    {
        int headerId = settings.headerLayoutId;
        if (headerId == -1) {
            if (settings.animatedHeaderImage) {
                headerId = R.layout.material_view_pager_moving_header;
            } else {
                headerId = R.layout.material_view_pager_imageview_header;
            }
        }
        headerBackgroundContainer.addView(LayoutInflater.from(getContext()).inflate(headerId, headerBackgroundContainer, false));
    }

    if (isInEditMode()) { //preview titlestrip
        //add fake tabs on edit mode
        settings.pagerTitleStripId = R.layout.tools_material_view_pager_pagertitlestrip;
    }
    if (settings.pagerTitleStripId != -1) {
        pagerTitleStripContainer.addView(LayoutInflater.from(getContext()).inflate(settings.pagerTitleStripId, pagerTitleStripContainer, false));
    }

    if (settings.logoLayoutId != -1) {
        logoContainer.addView(LayoutInflater.from(getContext()).inflate(settings.logoLayoutId, logoContainer, false));
        if (settings.logoMarginTop != 0) {
            RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) logoContainer.getLayoutParams();
            layoutParams.setMargins(0, settings.logoMarginTop, 0, 0);
            logoContainer.setLayoutParams(layoutParams);
        }
    }

    headerBackground = findViewById(R.id.headerBackground);
    toolbarLayoutBackground = findViewById(R.id.toolbar_layout_background);

    initialiseHeights();

    //construct the materialViewPagerHeader with subviews
    if (!isInEditMode()) {
        materialViewPagerHeader = MaterialViewPagerHeader
            .withToolbar(mToolbar)
            .withToolbarLayoutBackground(toolbarLayoutBackground)
            .withPagerSlidingTabStrip(pagerTitleStripContainer)
            .withHeaderBackground(headerBackground)
            .withStatusBackground(findViewById(R.id.statusBackground))
            .withLogo(logoContainer);

        //and construct the MaterialViewPagerAnimator
        //attach it to the activity to enable MaterialViewPagerHeaderView.setMaterialHeight();
        MaterialViewPagerHelper.register(getContext(), new MaterialViewPagerAnimator(this));
    } else {

        //if in edit mode, add fake cardsviews
        View sample = LayoutInflater.from(getContext()).inflate(R.layout.tools_list_items, pagerTitleStripContainer, false);

        FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) sample.getLayoutParams();
        int marginTop = Math.round(Utils.dpToPx(settings.headerHeight + 10, getContext()));
        params.setMargins(0, marginTop, 0, 0);
        super.setLayoutParams(params);

        addView(sample);
    }
}
 
源代码14 项目: AndroidChromium   文件: Tab.java
/**
 * @param manager The fullscreen manager that should be notified of changes to this tab (if
 *                set to null, no more updates will come from this tab).
 */
public void setFullscreenManager(FullscreenManager manager) {
    mFullscreenManager = manager;
    if (mFullscreenManager != null) {
        boolean topOffsetsInitialized = !Float.isNaN(mPreviousTopControlsOffsetY)
                && !Float.isNaN(mPreviousContentOffsetY);
        boolean bottomOffsetsInitialized =
                !Float.isNaN(mPreviousBottomControlsOffsetY);
        boolean isChromeHomeEnabled = FeatureUtilities.isChromeHomeEnabled();

        // Make sure the dominant control offsets have been set.
        if ((!topOffsetsInitialized && !isChromeHomeEnabled)
                || (!bottomOffsetsInitialized && isChromeHomeEnabled)) {
            mFullscreenManager.setPositionsForTabToNonFullscreen();
        } else {
            mFullscreenManager.setPositionsForTab(mPreviousTopControlsOffsetY,
                    mPreviousBottomControlsOffsetY,
                    mPreviousContentOffsetY);
        }
        updateFullscreenEnabledState();
    }

    // For blimp mode, offset the blimp view by the height of browser controls. This will ensure
    // that the view doesn't get clipped at the bottom of the page and also the touch offsets
    // would work correctly.
    if (getBlimpContents() != null && mFullscreenManager != null) {
        ViewGroup blimpView = getBlimpContents().getView();
        FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) blimpView.getLayoutParams();
        if (lp == null) {
            lp = new FrameLayout.LayoutParams(
                    LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        }

        lp.topMargin = mFullscreenManager.getTopControlsHeight();
        blimpView.setLayoutParams(lp);
    }
}
 
源代码15 项目: NIM_Android_UIKit   文件: EasyAlertDialog.java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(resourceId);
    try {
        ViewGroup root = (ViewGroup) findViewById(R.id.easy_alert_dialog_layout);
        if (root != null) {
            ViewGroup.LayoutParams params = root.getLayoutParams();
            params.width = (int) ScreenUtil.getDialogWidth();
            root.setLayoutParams(params);
        }

        titleView = findViewById(R.id.easy_dialog_title_view);
        if (titleView != null) {
            setTitleVisible(isTitleVisible);
        }
        titleBtn = (ImageButton) findViewById(R.id.easy_dialog_title_button);
        if (titleBtn != null) {
            setTitleBtnVisible(isTitleBtnVisible);
        }
        titleTV = (TextView) findViewById(R.id.easy_dialog_title_text_view);
        if (titleTV != null) {
            titleTV.setText(title);
            if (NO_TEXT_COLOR != titleTextColor)
                titleTV.setTextColor(titleTextColor);
            if (NO_TEXT_SIZE != titleTextSize)
                titleTV.setTextSize(titleTextSize);
        }

        messageTV = (TextView) findViewById(R.id.easy_dialog_message_text_view);
        if (messageTV != null) {
            messageTV.setText(message);
            setMessageVisible(isMessageVisble);
            if (NO_TEXT_COLOR != msgTextColor)
                messageTV.setTextColor(msgTextColor);
            if (NO_TEXT_SIZE != msgTextSize)
                messageTV.setTextSize(msgTextSize);
        }

        message2TV = (TextView) findViewById(R.id.easy_dialog_message_2);
        if (message2TV != null && !TextUtils.isEmpty(message2)) {
            message2TV.setVisibility(View.VISIBLE);
            message2TV.setText(message2);
        }

        positiveBtn = (Button) findViewById(R.id.easy_dialog_positive_btn);
        if (isPositiveBtnVisible && positiveBtn != null) {
            positiveBtn.setVisibility(View.VISIBLE);
            if (NO_TEXT_COLOR != positiveBtnTitleTextColor) {
                positiveBtn.setTextColor(positiveBtnTitleTextColor);
            }
            if (NO_TEXT_SIZE != positiveBtnTitleTextSize) {
                positiveBtn.setTextSize(positiveBtnTitleTextSize);
            }
            positiveBtn.setText(positiveBtnTitle);
            positiveBtn.setOnClickListener(positiveBtnListener);
        }

        negativeBtn = (Button) findViewById(R.id.easy_dialog_negative_btn);
        btnDivideView = findViewById(R.id.easy_dialog_btn_divide_view);
        if (isNegativeBtnVisible) {
            negativeBtn.setVisibility(View.VISIBLE);
            btnDivideView.setVisibility(View.VISIBLE);
            if (NO_TEXT_COLOR != this.negativeBtnTitleTextColor) {
                negativeBtn.setTextColor(negativeBtnTitleTextColor);
            }
            if (NO_TEXT_SIZE != this.negativeBtnTitleTextSize) {
                negativeBtn.setTextSize(negativeBtnTitleTextSize);
            }
            negativeBtn.setText(negativeBtnTitle);
            negativeBtn.setOnClickListener(negativeBtnListener);
        }

        if (mViewListener != null && mViewListener.size() != 0) {
            Iterator iter = mViewListener.entrySet().iterator();
            View view = null;
            while (iter.hasNext()) {
                Map.Entry<Integer, View.OnClickListener> entry = (Map.Entry) iter.next();
                view = findViewById(entry.getKey());
                if (view != null && entry.getValue() != null) {
                    view.setOnClickListener(entry.getValue());
                }
            }
        }

    } catch (Exception e) {

    }
}
 
源代码16 项目: AutoScalingLayout   文件: ASViewGroupUtil.java
/**
 * 测量宽高(只有一方数值确定,另一方为WRAP_CONTENT才需要测量,用于保持纵横比)
 * @param vg ViewGroup
 * @param widthMeasureSpec  宽度
 * @param heightMeasureSpec 高度
 * @return 测量好的宽高
 */
public int[] onMeasure(ViewGroup vg, int widthMeasureSpec, int heightMeasureSpec) {
    int measureSpecs[] = new int[2];
    measureSpecs[0] = widthMeasureSpec;
    measureSpecs[1] = heightMeasureSpec;

    if (!mAutoScaleEnable)
        return measureSpecs;

    int widthMode = View.MeasureSpec.getMode(widthMeasureSpec);
    int heightMode = View.MeasureSpec.getMode(heightMeasureSpec);

    int width = View.MeasureSpec.getSize(widthMeasureSpec);
    int height = View.MeasureSpec.getSize(heightMeasureSpec);

    ViewGroup.LayoutParams params = vg.getLayoutParams();

    // 已知宽度
    boolean bScalingWidth = widthMode == View.MeasureSpec.EXACTLY && ViewGroup.LayoutParams.MATCH_PARENT == params.width;
    // 已知高度
    boolean bScalingHeight = heightMode == View.MeasureSpec.EXACTLY && ViewGroup.LayoutParams.MATCH_PARENT == params.height;

    if (bScalingHeight && bScalingWidth && TYPE_FIT_INSIDE == mScaleType){
        scaleSize(vg, width, height, TYPE_FIT_INSIDE);
    }
    else if (bScalingHeight && TYPE_FIT_HEIGHT == mScaleType){
        scaleSize(vg, width, height, TYPE_FIT_HEIGHT);
    }
    else if (bScalingWidth && TYPE_FIT_WIDTH == mScaleType){
        scaleSize(vg, width, height, TYPE_FIT_WIDTH);
    }

    if (0 == mDesignWidth || 0 == mDesignHeight)
        return measureSpecs;

    if ( TYPE_FIT_INSIDE != mScaleType)
        return measureSpecs;

    if (widthMode != View.MeasureSpec.EXACTLY
            && heightMode == View.MeasureSpec.EXACTLY
            && ViewGroup.LayoutParams.WRAP_CONTENT == params.width) {
        // 高度为match_parent或具体值,宽度wrap_content
        width = (height * mDesignWidth / mDesignHeight);
        measureSpecs[0] = View.MeasureSpec.makeMeasureSpec(width,
                View.MeasureSpec.EXACTLY);
    }else if (widthMode == View.MeasureSpec.EXACTLY
            && heightMode != View.MeasureSpec.EXACTLY
            && ViewGroup.LayoutParams.WRAP_CONTENT == params.height) {
        // 宽度为match_parent或具体值,高度为wrap_content
        height = (width * mDesignHeight / mDesignWidth);
        measureSpecs[1] = View.MeasureSpec.makeMeasureSpec(height,
                View.MeasureSpec.EXACTLY);
    }

    return measureSpecs;
}
 
源代码17 项目: dynamic-support   文件: DynamicAlertController.java
private void setupCustomContent(ViewGroup customPanel) {
    final View customView;
    if (mView != null) {
        customView = mView;
    } else if (mViewLayoutResId != 0) {
        final LayoutInflater inflater = LayoutInflater.from(mContext);
        customView = inflater.inflate(mViewLayoutResId, customPanel, false);
    } else {
        customView = null;
    }

    if (customView != null && mViewRoot == null) {
        if (mViewRootId != 0) {
            mViewRoot = customView.findViewById(mViewRootId);

            if (mViewRoot == null) {
                throw new NullPointerException("Unable to find root view for the supplied id "
                        + mViewRootId + ".");
            }
        }
    }

    final boolean hasCustomView = customView != null;
    if (!hasCustomView || !canTextInput(customView)) {
        mWindow.setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
                WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
    }

    if (hasCustomView) {
        final FrameLayout custom = mWindow.findViewById(R.id.custom);
        custom.addView(customView, new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT));

        if (mViewSpacingSpecified) {
            custom.setPadding(
                    mViewSpacingLeft, mViewSpacingTop, mViewSpacingRight, mViewSpacingBottom);
        }

        if (mListView != null) {
            ((LinearLayout.LayoutParams) customPanel.getLayoutParams()).weight = 0;
        }
    } else {
        customPanel.setVisibility(View.GONE);
    }
}
 
@Override
public void onViewCreated(Activity activity, View headerView) {
    // Get ProgressBar and TextView. Also set initial text on TextView
    mHeaderProgressBar = (ProgressBar) headerView.findViewById(R.id.ptr_progress);
    mHeaderTextView = (TextView) headerView.findViewById(R.id.ptr_text);

    // Apply any custom ProgressBar colors
    applyProgressBarColor();

    // Labels to display
    mPullRefreshLabel = activity.getString(R.string.pull_to_refresh_pull_label);
    mRefreshingLabel = activity.getString(R.string.pull_to_refresh_refreshing_label);
    mReleaseLabel = activity.getString(R.string.pull_to_refresh_release_label);

    // Retrieve the Action Bar size from the Activity's theme
    mContentLayout = (ViewGroup) headerView.findViewById(R.id.ptr_content);
    if (mContentLayout != null) {
        mContentLayout.getLayoutParams().height = getActionBarSize(activity);
        mContentLayout.requestLayout();
    }

    // Retrieve the Action Bar background from the Activity's theme (see #93).
    Drawable abBg = getActionBarBackground(activity);
    if (abBg != null) {
        // If we do not have a opaque background we just display a solid solid behind it
        if (abBg.getOpacity() != PixelFormat.OPAQUE) {
            View view = headerView.findViewById(R.id.ptr_text_opaque_bg);
            if (view != null) {
                view.setVisibility(View.VISIBLE);
            }
        }

        mHeaderTextView.setBackgroundDrawable(abBg);
    }

    // Retrieve the Action Bar Title Style from the Action Bar's theme
    Context abContext = headerView.getContext();
    final int titleTextStyle = getActionBarTitleStyle(abContext);
    if (titleTextStyle != 0) {
        mHeaderTextView.setTextAppearance(abContext, titleTextStyle);
    }

    // Call onReset to make sure that the View is consistent
    onReset();
}
 
源代码19 项目: iGap-Android   文件: AbstractMessage.java
@CallSuper
protected void updateLayoutForReceive(VH holder) {
    ViewGroup frameLayout = (ViewGroup) holder.itemView.findViewById(R.id.mainContainer);
    ImageView imgTick = (ImageView) holder.itemView.findViewById(R.id.cslr_txt_tic);
    TextView messageText = (TextView) holder.itemView.findViewById(R.id.messageSenderTextMessage);

    LinearLayout root = (LinearLayout) holder.itemView.findViewById(R.id.contentContainer);
    LinearLayout timeLayout = (LinearLayout) root.getParent();
    timeLayout.setGravity(Gravity.LEFT);

    if (messageText != null) {
        messageText.setTextColor(Color.parseColor(G.textBubble));
    }
    //   ProtoGlobal.RoomMessageType messageType = mMessage.forwardedFrom == null ? mMessage.messageType : mMessage.forwardedFrom.getMessageType();

    if (G.isDarkTheme) {
        setTextColor(imgTick, R.color.white);
    } else {
        setTextColor(imgTick, R.color.colorOldBlack);
    }


    ((FrameLayout.LayoutParams) frameLayout.getLayoutParams()).gravity = Gravity.LEFT;

    ((LinearLayout.LayoutParams) root.getLayoutParams()).gravity = Gravity.LEFT;

    if (G.isDarkTheme) {
        ((View) (holder.itemView.findViewById(R.id.contentContainer)).getParent()).setBackgroundResource(R.drawable.rectangel_white_round_dark);
    } else {
        ((View) (holder.itemView.findViewById(R.id.contentContainer)).getParent()).setBackgroundResource(R.drawable.rectangel_white_round);
    }

    /**
     * add main layout margin to prevent getting match parent completely
     * set to mainContainer not itemView because of selecting item foreground
     */

    GradientDrawable circleDarkColor = (GradientDrawable) ((View) root.getParent()).getBackground();
    circleDarkColor.setColor(Color.parseColor(G.bubbleChatReceive));

    ((FrameLayout.LayoutParams) frameLayout.getLayoutParams()).leftMargin = (int) holder.itemView.getContext().getResources().getDimension(R.dimen.dp10);
    ((FrameLayout.LayoutParams) frameLayout.getLayoutParams()).rightMargin = (int) holder.itemView.getContext().getResources().getDimension(R.dimen.dp28);
}
 
源代码20 项目: iGap-Android   文件: AbstractMessage.java
@CallSuper
    protected void updateLayoutForSend(VH holder) {

        ViewGroup frameLayout = (ViewGroup) holder.itemView.findViewById(R.id.mainContainer);
        ((FrameLayout.LayoutParams) frameLayout.getLayoutParams()).gravity = Gravity.RIGHT;
        LinearLayout root = (LinearLayout) holder.itemView.findViewById(R.id.contentContainer);

        ((LinearLayout.LayoutParams) root.getLayoutParams()).gravity = Gravity.RIGHT;

        LinearLayout timeLayout = (LinearLayout) root.getParent();
        timeLayout.setGravity(Gravity.RIGHT);

        ImageView imgTick = (ImageView) holder.itemView.findViewById(R.id.cslr_txt_tic);
        TextView messageText = (TextView) holder.itemView.findViewById(R.id.messageSenderTextMessage);
        //  TextView iconHearing = (TextView) holder.itemView.findViewById(R.id.cslr_txt_hearing);

        if (messageText != null) {
            messageText.setTextColor(Color.parseColor(G.textBubble));
        }
        //   ProtoGlobal.RoomMessageType messageType = mMessage.forwardedFrom == null ? mMessage.messageType : mMessage.forwardedFrom.getMessageType();


        ProtoGlobal.RoomMessageStatus status = ProtoGlobal.RoomMessageStatus.UNRECOGNIZED;
        if (mMessage.status != null) {
            try {
                status = ProtoGlobal.RoomMessageStatus.valueOf(mMessage.status);
            } catch (RuntimeException e) {
                e.printStackTrace();
            }
        }

        if (status == ProtoGlobal.RoomMessageStatus.SEEN) {
            if (G.isDarkTheme) {
                setTextColor(imgTick, R.color.iGapColor);
            } else {
                setTextColor(imgTick, R.color.backgroundColorCall2);
            }

        } else if (status == ProtoGlobal.RoomMessageStatus.LISTENED) {
            // iconHearing.setVisibility(View.VISIBLE);
            if (G.isDarkTheme) {
                setTextColor(imgTick, R.color.iGapColor);
            } else {
                setTextColor(imgTick, R.color.backgroundColorCall2);
            }

            imgTick.setVisibility(View.VISIBLE);
        } else {
//            setTextColor(imgTick, Color.parseColor(G.txtIconCheck));
            imgTick.setColorFilter(Color.parseColor(G.txtIconCheck));
        }


        if (G.isDarkTheme) {
            ((View) (holder.itemView.findViewById(R.id.contentContainer)).getParent()).setBackgroundResource(R.drawable.rectangle_send_round_color_dark);
        } else {
            ((View) (holder.itemView.findViewById(R.id.contentContainer)).getParent()).setBackgroundResource(R.drawable.rectangle_send_round_color);
        }
        GradientDrawable circleDarkColor = (GradientDrawable) ((View) root.getParent()).getBackground();
        circleDarkColor.setColor(Color.parseColor(G.bubbleChatSend));

        /**
         * add main layout margin to prevent getting match parent completely
         * set to mainContainer not itemView because of selecting item foreground
         */
        ((FrameLayout.LayoutParams) frameLayout.getLayoutParams()).leftMargin = (int) holder.itemView.getContext().getResources().getDimension(R.dimen.dp28);
        ((FrameLayout.LayoutParams) frameLayout.getLayoutParams()).rightMargin = (int) holder.itemView.getContext().getResources().getDimension(R.dimen.dp10);

        //((LinearLayout.LayoutParams) (holder.itemView.findViewById(R.id.contentContainer).getLayoutParams())).rightMargin = (int) holder.itemView.getResources().getDimension(R.dimen.messageBox_minusLeftRightMargin);
        //((LinearLayout.LayoutParams) (holder.itemView.findViewById(R.id.contentContainer).getLayoutParams())).leftMargin = 0;
    }
 
 方法所在类