如何在RelativeLayout中让TextView居中显示于SquareImageView内
解决TextView在SquareImageView内居中的问题
我来帮你搞定这个TextView居中显示在SquareImageView内部的问题~先看看原布局里的几个小问题,再给你调整后的代码:
原布局的问题分析
- 你的
SquareImageView设置了android:layout_height="0dp",但没有搭配layout_weight属性,这会导致ImageView无法正常显示高度,自然TextView也没法和它对齐居中。 - 虽然你给TextView加了
layout_centerInParent这些RelativeLayout的布局属性,但TextView的宽高设为60dp和ImageView一致后,还需要给TextView加上android:gravity="center"才能让文字本身在TextView内部居中。
调整后的完整布局代码
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"> <com.example.itay.sumika.SquareImageView android:id="@+id/circleWhosTurnIsIt" android:layout_width="60dp" android:layout_height="60dp" <!-- 把0dp改成60dp,和预期大小一致 --> android:background="@drawable/cirecle_pink_new" android:scaleType="centerInside" android:layout_centerInParent="true" /> <!-- 让ImageView在RelativeLayout里居中 --> <TextView android:layout_width="match_parent" <!-- 或者设为60dp也可以,match_parent更适配 --> android:layout_height="match_parent" android:text="67" android:textColor="@color/white" android:textSize="30dp" android:gravity="center" <!-- 关键!让文字在TextView内部居中 --> android:layout_centerInParent="true" /> <!-- 让TextView和ImageView完全重合,居中显示 --> </RelativeLayout>
额外优化建议
如果你的SquareImageView是自定义控件,确保它的onMeasure方法正确实现了正方形的逻辑(宽高取最小值或者固定比例),这样不管设宽还是高,都能保持正方形,避免布局错乱。
内容的提问来源于stack exchange,提问作者Nakash.i
相关产品推荐
相关产品推荐

