我有一个 EditText
、一个 Button
和一个 TextView
。当点击按钮时,textview 显示 edittext 中编写的文本。是否可以根据文本找到 textview 占用的大小。例如如果它有三个字符 "abc",现在的宽度是多少,如果它有 5 个字符如 "abcde",那么宽度是多少?
我有一个 EditText
、一个 Button
和一个 TextView
。当点击按钮时,textview 显示 edittext 中编写的文本。是否可以根据文本找到 textview 占用的大小。例如如果它有三个字符 "abc",现在的宽度是多少,如果它有 5 个字符如 "abcde",那么宽度是多少?
Rect bounds = new Rect();
Paint textPaint = textView.getPaint();
textPaint.getTextBounds(text,0,text.length(),bounds);
int height = bounds.height();
int width = bounds.width();
或者textView.setText("bla");
textView.measure(0, 0);
textView.getMeasuredWidth();
textView.getMeasuredHeight();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView edit = (TextView) findViewById(R.id.edit);
edit.setTextSize(20);
edit.setText("Hello, world");
edit.measure(0, 0);
int width = edit.getMeasuredWidth();
Log.w("width", width.toString());
}
在获取宽度之前,您需要测量视图 / 标签 / 文本编辑器的宽度。 如果这不起作用,请告诉我。
TextView txt = new TextView(mContext);
txt.setText("Some Text)";
int height = txt.getLineCount() * txt.getLineHeight();
int width = txt.getWidth();
yourTextView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int width = yourTextView.getMeasuredWidth();
int height = yourTextView.getMeasuredHeight();
}
});
请告诉我您想要什么单位的宽度?
TextView
的方法getWidth()
可以返回您的视图的宽度,以像素为单位。
TextView textView = (TextView)findViewById(R.id.textview);
textView.getWidth(); //width of your view, in pixels