如何在android中以编程方式查找TextView的文本区域(高度/宽度)

我有一个EditText ,一个Button和一个TextView 。 单击该按钮时,textview显示以edittext编写的文本。 是否可以根据文本find占用的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()); } 

在获得宽度之前,您必须测量视图/标签/文本编辑。 如果这不起作用,请告诉我。

试试这种方式,希望这可以帮助您解决问题。

 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 
 TextView txt = new TextView(mContext); txt.setText("Some Text)"; int height = txt.getLineCount() * txt.getLineHeight(); int width = txt.getWidth();