我想以编程方式设置textView的宽度。我希望宽度随textView的文本(值)的长度而变化。 textView的文本不能换行。如果textView的文本是" OLA OMO ALARE",如何在下面的代码中使用此字符串(13)的长度来导出将lp.width设置为的正确值?
LayoutParams lp = tv.getLayoutParams();
lp.width =
tv.setLayoutParams(lp);
我尝试了下面的代码,但宽度不够长,因此文本自动包装在textView中。
lp.width = Math.round( tv.getPaint().measureText(tv.getText().toString())) )
感谢。
答案 0 :(得分:0)
1)你必须使用Rect实例。
2)然后你需要在textView的getPaint()
和getTextBound()
方法中使用它,这些方法允许你放置文本视图的文本。
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());
答案 1 :(得分:0)
使用ViewGroup.LayoutParams.WRAP_CONTENT
常量。
ViewGroup.LayoutParams params = myTextView.getLayoutParams();
params.width = ViewGroup.LayoutParams.WRAP_CONTENT;
myTextView.setLayoutParams(params);