Android setTextSize更改编辑文本高度和形状

Android setTextSize更改编辑文本高度和形状,android,android-layout,android-edittext,android-ui,Android,Android Layout,Android Edittext,Android Ui,我的问题是: 我想更改java代码中的editText文本大小。我已经定义了它的高度和宽度。问题是我想设置文本大小,使文本完全显示在editText中,并且其重量和高度不会改变。这是我的editText参数定义和我的UI快照(et[]]是我的editTexts): 如您所见,当我添加setTextSize时,firsteditText的形状和边距会发生更改。您需要从editText中删除填充(并且可能会将重力属性设置为“中心”)。如果edittext没有任何填充,那么您可能正在使用一个应该更改

我的问题是:

我想更改java代码中的
editText
文本大小。我已经定义了它的高度和宽度。问题是我想设置文本大小,使文本完全显示在
editText
中,并且其重量和高度不会改变。这是我的
editText
参数定义和我的UI快照(et[]]是我的
editText
s):


如您所见,当我添加
setTextSize
时,first
editText
的形状和边距会发生更改。您需要从editText中删除填充(并且可能会将重力属性设置为“中心”)。如果edittext没有任何填充,那么您可能正在使用一个应该更改的9补丁可绘制文件(如果是这种情况,我建议您为edittext的背景创建一个xml可绘制文件)。 如果你需要任何进一步的帮助,让我们现在


希望有帮助。

您所需要做的就是不要硬编码文本的宽度和高度。如果edittext设置为固定的高度和宽度,则当文本大小发生变化时,它将不允许缩放,从而导致出现问题。您所需要做的就是设置edittext的宽度和高度以包装内容。这将非常有效,并根据需要相应地缩放edittext

希望这对你有帮助。
Stll需要任何帮助,请随意询问。

如果edittext高度没有更改,它如何显示所有文本?当然,当文本大小变大时,EditText的高度会变高。@Charlesjean实际上正如您在快照中看到的,当您设置其高度时,它不会再增长或收缩。您可以看到editText中的数字显示得不完全正确?另外,如果在我们更改textSize时应该更改高度,那么setHeight或setWidth有什么用途?如果要更改EidtText或TextView的高度和宽度,应该设置其layoutParameter,而不是使用setWidth和setHeight。感谢您的回答,实际上重力属性确实有效,但我不明白为什么我应该创建一个xml来解决这个问题!我不是说它是强制性的。根据我的经验,如果您使用的是九块,那么内部可绘制边界将与您的文本重叠(就像文本在到达编辑文本的限制之前剪切的图像)。您还可以添加属性“lines”或“maxLines”,以告知edittext具有特定的行数(可以是1表示单行edittext)。如果要将“…”添加为前缀或后缀,请检查“elipsize”属性。谢谢您的回答,但我不希望编辑文本布局根据其文本进行更改。我的意思是,我不想显示所有文本,因为有时我的应用程序中的文本太长,如果我想显示所有文本,我的整个UI将是一场灾难。你可以使用wrap\u内容设置maxWidhth和maxHeight属性。这将使editText的大小达到一个极限,并且当它达到这个极限时,它不会再增长。好吧,但是想象一下,在我的应用程序中,一个editText表有4行4列,但是由于文本长度不同,每个editText都有其宽度和高度,当然它们不超过极限。但是我认为整个UI不会安排得很好,是吗?嗯,非常正确。在这种情况下,你需要保持edittext的大小固定。我可以看到UI吗?然后我可以给你更好的主意怎么做。实际上,我现在正在尝试修复它,但如果我不成功,我会发布整个UI,并明确地寻求你的帮助。谢谢你的帮助,兄弟,这很重要。
LayoutParams params = new LayoutParams(
                LayoutParams.WRAP_CONTENT,      
                LayoutParams.WRAP_CONTENT
        );

    params.setMargins(5, 5, 5, 5);

        et[z][0].setText(tmpDate);
        et[z][0].setLayoutParams(params);
        et[z][0].setTextSize(10);
        et[z][0].setWidth(45);
        et[z][0].setHeight(30);

        et[z][1].setText(tmpMoney);
        et[z][1].setLayoutParams(params);
        et[z][1].setWidth(90);
        et[z][1].setHeight(30);//this one is without setTextSize