从textView文本长度导出布局参数宽度
我想以编程方式设置textView的宽度。我希望宽度随textView的文本(值)的长度而变化。 textView的文本不能换行。如果textView的文本是“OLA OMO ALARE”,那么在下面的代码中,如何使用此字符串的长度(13)来导出将lp.width设置为的正确值?从textView文本长度导出布局参数宽度
LayoutParams lp = tv.getLayoutParams();
lp.width =
tv.setLayoutParams(lp);
我试了下面的代码,但宽度不够长,因此文本被自动包装在textView中。
lp.width = Math.round( tv.getPaint().measureText(tv.getText().toString())))
谢谢。
1)你必须为此使用Rect实例。
2)然后,您需要在textView的getPaint()
和getTextBound()
方法中使用此方法,该方法允许您放置textview的文本。
3)最后只需从Rect实例中获取宽度。
代码是在这里执行的所有步骤, 我测试了这个,它工作正常。希望能帮助到你。
TextView textView = new TextView(this);
textView.setText("AALAP");
Rect rect = new Rect();
textView.getPaint().getTextBounds(textView.getText().toString(), 0, textView.getText().length(), rect);
Log.d(TAG, "onCreate: width: "+rect.width());
感谢您的及时回应。我按照你的建议,但派生的宽度不够长,因此文本被自动包装在textview中。我的代码: statusCodeTitle.setText(“Status Code_loplop:”); statusCodeTitle.getPaint()。getTextBounds(statusCodeTitle.getText()。toString(),0,statusCodeTitle.getText()。length(),rect); titleMaxWidth = rect.width(); rect.width()返回189 谢谢。 – Ola
使用ViewGroup.LayoutParams.WRAP_CONTENT
常数为此。
ViewGroup.LayoutParams params = myTextView.getLayoutParams();
params.width = ViewGroup.LayoutParams.WRAP_CONTENT;
myTextView.setLayoutParams(params);
为什么你不想要它WRAP?这是非常直接的.. –