android sdk如何使TextView以动态的文本大小为中心

时间:2013-01-19 02:44:29

标签: android

在更改文本大小时,我已经用尽了我的搜索以保持TextView居中。

此网站上有许多类似的问题,但没有一个主题为我的问题提供解决方案。

在我的XML文件中,我有一个RelativeLayout和TextView(下面的代码)。

将文字大小从1更改为> 300的TextView,然后从300返回 - > 1以编程方式,TextView的位置更改并向屏幕底部向下移动。

如何使TextView以动态的文本集为中心?

这是我的xml文件

<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:id="@+id/vgRelativeLayout">

    <TextView            
        android:id="@+id/tViewID"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"            
        android:layout_gravity="center"  
        android:center_vertical="true"
        android:center_horizontal="true" />   
</RelativeLayout>

如果以编程方式执行以下操作,TextView的位置将从center_vertical和center_horizo​​ntal属性设置的原始居中位置更改。

TextView的新位置将在垂直刻度上移动得更低。

水平刻度上的位置不会改变。

 TextView tView = (TextView) findViewById(R.id.tViewID);  

 tView.setTextSize(1);
 Thread.sleep(5000);

 tView.setTextSize(300);
 Thread.sleep(5000);

 tview.setTextSize(1);

2 个答案:

答案 0 :(得分:0)

听起来你需要调用布局来重新做它的布局。在这种情况下,您通常使用RequestLayout(),可以通过获取对RelativeLayout的引用来调用它。

所以你需要给RelativeLayout一个Id,然后通过findViewById()获取引用,然后在你改变文本大小后调用RequestLayout。

答案 1 :(得分:0)

试试这个android:layout_centerHorizo​​ntal =“true”&amp; android:layout_centerVertical =“true”或试试这个android:layout_centerInParent =“true”。如果有效,请点击投票给我