android 进阶布局之:一个控件中心和另一个控件底部对齐如何实现?

一个View宽充满父窗体,高100dp,想实现另一个View的中心和这个View的底部对齐如何实现?

父容器选择相对布局:RerativeLayout,设置ImageView的android:centerParent="true"
同时设置TextView的android:centerParent="true",两个控件都是相对RelativeLayout,设置的布局,完成一个控件放置在另一个控件上

RerativeLayout,后面控件和前面的底对齐,如果用LinearLayout,就让它们的Gravity为bottom

父控件用relativeLayout,
第一个view设置top,marginTop为0,
第二个view也对齐到top,动态设置他的marginTop为第一个控件的高减去第二个控件高度的一半。

相对布局RelativeLayout中android:centerParent="ture",另外一个控件在次控件下部就可以了

利用相对布局RelativeLayout 属性中 android:layout_centerInParent="true" 与 android:layout_alignParentBottom="true" 设置即可

获取到顶部View的宽度,获取与左边magin和右边的magin,topViewCenter = (with-(maginLeft+maginRight))/2,然后将此控件放在TopView下面

第1个view的中和第二个view的底部对齐

首先让两个view并排显示 然后第一个view设置marginTop 通过下面方式值
int bottom=第二个view的底部(高+marginTop+paddingTop);
int marginTop=bottom-firstViewHeight/2;

如果第二个view的高度写死了的话的一个view的marginTop可以直接算出来写在xml里
如果第二个view的高度为包裹内容或填充父控件 那么在界面加载完毕以后通过回调来计算第一个view的marginTop并设置

第二控件高度应该是包裹内容 如果真的填满了父控件的话 那么达不到你说的效果 你需要定设规则 否则第一个控件显示不全

在那个高100dp的View上加一个高200dp相对布局,然后相对布局里面的View垂直居中就好了。

将你要相对对齐的那个控件设置为父控件,然后是用相对属性对齐就Ok了。

你在已知位置的View(称为v1,需要以中心为基准线放的称为v2),写一个高度为0的view作为标记(flagview),分配好ID,将其居中;最后易flagview作为基线摆放v2就ok了。望采纳