[問題] 畫出波形

看板AndroidDev作者 (炸彈摔5566)時間11年前 (2013/03/27 21:43), 編輯推噓3(3012)
留言15則, 5人參與, 最新討論串1/1
我個人是這個月才看Android的書, 我想請問各位開發者, 如果要畫出一個可以左右滑動,且會隨時間移動的波形(畫面由右至左滑) 波形的本體是個一維陣列,陣列長度的大小會隨著來源而有所不同, 可能一開始整個矩陣大小就有個定值(已有輸入好的數據檔案), 或是不定值(矩陣會隨時間越來越大)(經藍芽傳輸正在輸入的數據檔案), 我想請教的是,因為我比較不希望這波形滑動時會有Lag的情況發生, 我看網路上畫波形有三個方式 (1)SurfaceView、(2)AChartEngine、(3)GraphView Library 那我想請教的是哪種方式比較適合讀檔、或接收藍芽數據, 能夠不Lag的畫出波形圖出來http://youtu.be/aRryxECCvtU?t=1m1s
(它這個還是會小Lag,另外我也想如果可以,也在波形上面標註數值。) 這樣的話(1)、(2)或(3)或(4)其他(如果有推薦)的方式,哪個適合做開發? 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.124.43.36

03/27 22:52, , 1F
我不知道哪個比較好~但我有使用(2)來實作過~0.0
03/27 22:52, 1F

03/27 22:53, , 2F
http://0rz.tw/Y6274 ~透過藍芽即時接受數據畫圖~0.0
03/27 22:53, 2F

03/27 22:54, , 3F
圖二就是實例~綠色表示即時心跳率~紅色表示歷史數據。
03/27 22:54, 3F
我昨天有去下載AChartEngineDemoCoce檔,然而不管在模擬或是實機上跑, 在初始畫面中(選擇要看哪一種的Demo),不論選哪一個,都會中止執行程序ˊˋ The application achartengine (process org.achartengine.chartdemo.demo) has stopped unexpectedly.....

03/28 00:03, , 4F
用1 的方式畫ecg 。 開thread去跑。
03/28 00:03, 4F

03/28 00:05, , 5F
嫌畫圖慢 有opengl可以試試
03/28 00:05, 5F
嗯,剛看一下,需要用C寫啊,嗯.... ※ 編輯: batista5566 來自: 140.124.43.36 (03/28 09:48) ※ 編輯: batista5566 來自: 140.124.43.36 (03/28 09:51)

03/28 12:46, , 6F
你舉的三個都跟讀檔 接收藍牙數據無關
03/28 12:46, 6F

03/28 12:47, , 7F
不過SurfaceView連影片都能播了 跑個波型會lag的話
03/28 12:47, 7F

03/28 12:47, , 8F
可能要考慮一下是不是其它因素(比方說數據處理)
03/28 12:47, 8F
這我檢查看看,而且我也是想找說有沒有Chart Library能夠在波形由右至左滑動時, 能夠撰寫時比較簡易,昨天是有試過GraphView Library, 不過在輸入顏色(有多條數據要辨識)那裏就一直產生錯誤Q_Q。

03/28 16:31, , 9F
同意樓上, SurfaceView是獨立的緒作繪製, 應該是
03/28 16:31, 9F

03/28 16:32, , 10F
較不會 LAG的方式(單指繪圖)
03/28 16:32, 10F

03/28 16:33, , 11F
SurfaceView是我們獨立開個執行緒在背後請求重繪
03/28 16:33, 11F

03/28 16:34, , 12F
所以你能試試看 sleep(ms), ms設為0, 測試它的繪製速度
03/28 16:34, 12F

03/28 16:34, , 13F
若你懂 OpenGl, 則可以使用 GlSurfaceView獲得更好的效能
03/28 16:34, 13F
我先試試sleep(ms)看看,謝謝提醒^^"。 ※ 編輯: batista5566 來自: 140.124.43.36 (03/29 10:05)

03/29 11:10, , 14F
http://ppt.cc/gUur 這篇是Google開發人員寫的
03/29 11:10, 14F

03/29 11:13, , 15F
開發app時繪圖方式的選擇,renderscript從4.1以後不支援
03/29 11:13, 15F
文章代碼(AID): #1HKlTlkN (AndroidDev)