2010-10-28 129 views
1

我有2 TextView的橫向LinearLayoutLinearLayout水平填充屏幕。我如何能實現以下行爲:Android佈局問題

  1. 如果第一TextView太大,它在結束這樣的ellipsized:

    [firstTextViewIsTooBig...|secondTextView]

  2. 如果第一TextView不大,佈局應該是這樣的:

    [firstTextViewIs|secondTextView---------]

重要:

  • 我不知道LinearLayout的寬度,所以第一TextView我不能設置固定maxWidth
  • 第二個TextView應始終對齊到第一個的左側,而不是在佈局的右側。

回答

1

http://developer.android.com/reference/android/graphics/Paint.html#measureText(java.lang.String,INT,INT)

public float measureText (String text, int start, int end); 
// Return the width of the text. 

,讓你預先計算文本的寬度。基於此,您可以相應地調整您的佈局,添加「...」省略號並設置寬度。

對於LinearLayout寬度,如果它是FillParent,則可以獲得屏幕寬度,即getWindow().getDecorView().getWidth(); - 僅在繪製完成後纔可以。