2014-02-18 78 views
1

我有一個客戶端套接字發送一些行(ANSI編碼),形成一個形狀。問題是在log cat中,當我打印出線條時,它們形成了一個完整的形狀,但是在我的Layout中,即使它們具有相同的長度,textviews也不會形成該形狀。我可以看到問題在於空格字符的字節大小。但是因爲我可以在日誌貓上看到它,所以必須有一種方法來設置文字視圖以形成完整的形狀。我嘗試用 替換所有空格字符,並將文本設置爲html格式,但仍然沒有運氣。有沒有我失蹤的方法?安卓字符大小

class ClientThread implements Runnable { 

     private BufferedReader input; 


     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      try { 
       InetAddress servAddress = InetAddress.getByName(SERVER_IP); 
       socked = new Socket(servAddress, SERVERPORT); 
       input = new BufferedReader(new InputStreamReader(socked.getInputStream(), "windows-1252")); 
       while(!Thread.currentThread().isInterrupted()) { 
        String read = input.readLine(); 
        updateConversationHandler.post(new updateUIThread(read)); 
       } 
      } catch (UnknownHostException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 


    } 
    class updateUIThread implements Runnable { 
     String msg; 
     public updateUIThread (String str) { 
      this.msg = str; 

     } 
     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      TextView tv = new TextView(cont); 
      tv.setTextColor(Color.WHITE); 
//   tv.setText(makeTextWithColors(msg)); 
//   tv.setText(msg + "count: " + msg.length()); 
      tv.setText(msg); 
      screen.addView(tv); 
      scroller.post(new Runnable() { 
       public void run() { 
        scroller.smoothScrollTo(0, screen.getBottom()); 
       } 
      }); 
     } 
} 
+0

您是否在談論ASCII藝術? – Merlevede

+1

使用等寬字體。確保你使用的是UTF-8編碼。或使用「標誌性字體」(這是一種特殊的字體,具有特殊符號) –

回答

1

看來

tv.setTypeface(Typeface.MONOSPACE); 

的伎倆。這是一種使所有字符具有相同寬度的字體。

0
TextView tb; 

tb.setTextSize(20); 

tb=Text View it will get floating point value of size you can put there integral type value 
+0

@Barriscan我認爲這將有助於你 – Amitsharma