在我的應用程序中,我顯示一個表格,其中各個單元格是可編輯的文本字段(即EditText對象)。我目前正在努力爲這些計算適當的寬度。如何計算適當的字段寬度?
如果我將寬度設置爲與顯示的文本中包含字符一樣多的「Ems」,則我的字段寬度大約爲2倍,表格看起來很醜,浪費了大量寶貴的屏幕空間。在「Ems」中設置寬度本質上就是假設最壞的情況,即假定字符串只包含字體中最寬的字符,通常是'M'(因此是方法的名稱),'m ','W'或'_')。但平均而言,字符串包含較窄的字符,因此這些字段中的大部分都是半空的,並且實際內容太寬。我正在拼命尋找一種方法來計算更好的擬合寬度,而不是最壞的寬度。
在Java中執行此操作的「正常」方法(至少在AWT或Swing中)是要求小部件的當前Font(實際上是Font的FontMetrics),以計算並返回顯示給定所需的寬度字符串像素。但是,如何獲得一個TextView的字體?我沒有找到任何方法來獲取(文本)視圖的字體和/或給出單元格文本字符串的實際內容來計算更合適的寬度。在Android中如何做到這一點?
邁克爾