看板 AndroidDev 關於我們 聯絡資訊
簡單來說就是利用Textview來模擬一個終端機console的介面 然後用settext來模擬print的行為 public LinkedList<String> screen_text = new LinkedList<String>(); public String get_screen_txt (String tmp){ String [] lines = tmp.split("\n") ; for( int i=lines.length-1 ; i>=0 ; i-- ) screen_text.addFirst(lines[i]+"\n"); while (screen_text.size()>15) screen_text.removeLast(); String[] a = new String[screen_text.size()]; tmp = ""; for(String element : screen_text.toArray(a)) { tmp += element; } update_finish = true; return tmp ; } 最快的方法應該是 http://stackoverflow.com/questions/8346833/console-textview-android 可是這篇沒考慮到當列印次數越來越多 字串變數越來越長 浪費記憶體的問題 而我的方法會考慮到螢幕能容納的行數 自動刪除螢幕以外的字串資料 不過效率上看起來似乎不是很理想 有人處理過這種問題嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.69.92.20
yauhh:模仿 BitmapFactory解? 05/24 22:36
nobody1:string 和 stringbuilder 的差別知道嗎? 05/25 00:10
java版有說阿 可是我的重點是想放在演算法層面 至於用stringbuilder的加速方法 以後再來弄看看 附帶一提 其實效果也還OK拉... 只是覺得為了處理一個print 需要動用到那麼多行程式碼 想說看看有沒有比較精簡的方式而已 不過似乎就是去做一個FIFO的QUEUE 好像很難再找到更好的方式 ※ 編輯: erspicu 來自: 219.69.92.20 (05/25 00:43)
qrtt1:知道有效的就先做吧。以後再弄!? 05/25 13:10
yauhh:你所提的效率是想要限制記憶體的耗用還是加快印字速度? 05/25 21:48
其實兩點目前都不夠成問題 只是說覺得這樣一個簡單的print模擬需求 需要動用到這麼多行程式碼 有沒有比較精簡的寫法 當然記憶體問題也得考慮 不然stackoverfollow的解法 應該是最快最簡單的了 ※ 編輯: erspicu 來自: 111.184.196.83 (05/25 21:51)
yauhh:原來是說寫程式的過程最快 05/25 22:02