`

使FrameLayout的Gravity等于Center

阅读更多
由于无法设置FrameLayout的Gravity,所以只能通过重写onLayout事件实现居中的效果了
@Override
protected void onLayout(boolean changed, int left, int top, int right,
		int bottom) {

	super.onLayout(changed, left, top, right, bottom);

	// align child to center
	int width = right - left;
	int height = bottom - top;

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

		if (childView.getVisibility() != View.GONE) {
			final int childLeft = (width - childView.getWidth()) / 2;
			final int childTop = (height - childView.getHeight()) / 2;

			childView.layout(childLeft, childTop,
					childLeft + childView.getWidth(),
					childTop + childView.getHeight());
		}
	}
}
分享到:
评论

相关推荐

    layout_gravity和gravity区别以及应用

    例如,你可以设置`gravity="center"`使内容居中,`gravity="right"`使内容靠右,或者`gravity="top"`使其靠上。 接下来,我们来看`layout_gravity`。这个属性主要用在`FrameLayout`和`LinearLayout`(当其`...

    FrameLayout

    - 子视图默认按照从左上角到右下角的顺序进行绘制,但可以通过设置`android:layout_gravity`属性改变其在布局中的位置,例如设置为"top"、"bottom"、"left"、"right"或"center"等。 - FrameLayout的大小由其最大尺寸...

    Android入门第三篇之RelativeLayout、FrameLayout.docx

    6. `gravity_center_horizontal`: 视图将在水平方向上居中。 7. `gravity_center_vertical`: 视图将在垂直方向上居中。 FrameLayout的一个常见应用场景是创建弹出式菜单或覆盖其他视图的小部件,因为它允许子视图...

    Android中帧布局FrameLayout的特点.pdf

    例如,`android:layout_gravity="center"`可以使子视图居中显示。 帧布局的典型应用场景包括: 1. 创建对话框或提示框:由于FrameLayout支持子视图的层叠,可以轻松实现覆盖其他界面的效果,常用于制作浮窗或者...

    Android学习笔记12:框架布局管理器FrameLayout

    虽然它不如其他如`LinearLayout`、`RelativeLayout`或`ConstraintLayout`那样复杂,但在某些特定的UI设计中,`FrameLayout`的灵活性和简洁性使其成为首选。通过实际操作和源码分析,你将能够更深入地掌握`...

    FrameLayout练习

    这个属性接受的值有"top"、"bottom"、"left"、"right"、"center"、"center_horizontal"、"center_vertical"等,组合使用可以实现不同的对齐方式。 例如,如果你有两个视图,一个在顶部,另一个在底部,你可以这样...

    模仿墨迹天气的天气展示, 使用FrameLayout实现

    2. **添加天气图标**:可以使用ImageView加载天气相关的SVG或PNG资源,通过设置`android:layout_gravity`为"center"使其居中。 3. **显示温度**:创建一个TextView,放置在天气图标下方,同样使用`android:layout_...

    FrameLayout手机帧布局

    `layout_gravity`属性控制子视图在FrameLayout中的位置。它可以设置为以下值: - `top`: 对齐到布局顶部。 - `bottom`: 对齐到布局底部。 - `left`: 对齐到布局左侧。 - `right`: 对齐到布局右侧。 - `center`: 居中...

    Layout_Gravity

    `android:layout_gravity`属性主要在FrameLayout和LinearLayout中使用,以及在Gravity类中定义的各种对齐选项。 ### FrameLayout的`layout_gravity` 在FrameLayout中,所有的子视图都可以设置`layout_gravity`来...

    Android中使用FrameLayout布局完成教学案例的要求说明.pdf

    为了确保它位于前景图片下方,可以将`TextView`放置在`ImageView`之后在XML代码中,或者设置其`layout_gravity`为"bottom",使其位于布局底部。 以下是一个简单的XML布局示例,展示了如何实现上述要求: ```xml ...

    FrameLayout应用

    - `android:layout_gravity`:此属性用于设置子视图在FrameLayout中的对齐方式,例如`top|left`表示左上角,`center`表示居中,`bottom|right`表示右下角。 - `android:layout_margin`:用于设置子视图与...

    Android布局之FrameLayout帧布局

    以下是一个使用FrameLayout的示例,其中包含三个TextView,它们的`layout_gravity`属性被设置为“center”: ```xml android:layout_width="match_parent" android:layout_height="match_parent"&gt; ...

    021集-FrameLayout和GridLayout

    2. **定位**:子视图的位置由`android:layout_gravity`属性决定,可以设置为"top"、"bottom"、"left"、"right"或"center"等值,控制视图在布局中的位置。 3. **尺寸**:如果子视图没有指定特定尺寸,它们将自动填充...

    FrameLayout TableLayout Demo

    例如,你可以设置为"center"使视图居中,或者设置为"bottom|right"使其位于布局的右下角。由于其简单直接的堆叠方式,FrameLayout常用于需要一个视图完全覆盖另一个视图的情况,如对话框或浮动按钮的背景。 **...

    Android布局之帧布局FrameLayout详解

    例如,`gravity="center"`将使视图居中显示,`gravity="bottom|right"`将使视图放置在右下角。同时,`gravity`属性还可以结合`layout_width`和`layout_height`来控制视图的大小,实现不同的布局效果。 在提供的代码...

    智能家居系统 帧布局FrameLayout.doc

    - `android:gravity`: 控制子视图在帧布局中的对齐方式,可选值有"top"、"bottom"、"left"、"right"、"center_vertical"、"center_horizontal"、"center"等,用于调整子视图在帧内的位置。 - `android:layout_margin...

    六大布局之FrameLayout的使用

    marginTop`使其上移,第三层工位设置`top`和正的`layout_marginTop`以及`layout_marginLeft`使其偏移到上方和右侧,第四层程序猿设置`center`和正的`layout_marginTop`使其下移。 **应用场景** 尽管FrameLayout在...

    Android入门之RelativeLayout、FrameLayout用法分析

    它的主要属性是`android:layout_gravity`,用于控制控件在布局内的对齐方式,比如可以设置为"top", "bottom", "left", "right"或"center"等。FrameLayout通常用于显示单个主要内容,或者需要简单覆盖效果的场景,...

    04UsandoFrameLayout:使用FrameLayout

    `Gravity`属性用于指定子视图在FrameLayout中的位置。它可以是水平方向(LEFT, CENTER_HORIZONTAL, RIGHT)和垂直方向(TOP, CENTER_VERTICAL, BOTTOM)的组合,还可以包括CENTER对齐。 6. **应用场景** - **...

Global site tag (gtag.js) - Google Analytics