AndroidDev 板


LINE

看了各位的討論,試著直接用一張 canvas 畫出所有columns而不是每個column都用view, 的確效率提高很多,但是有個問題想要請教一下, 如果我想要在listview裡面畫出格線的話該如何在canvas內做會比較好呢? 目前只要在canvas上使用drawRect 來畫出網格,整個listview就會變得有點鈍鈍的; 因為需求上一定要這麼多columns (表格大小大概是 50 columns * 1000 rows), 不知道有沒有什麼更有效率的方法可以畫出網格線呢? ※ 引述《givemepass (〆)》之銘言: : ※ 引述《mozzan (mozzan)》之銘言: : : 借這個討論問一下 : : 我有做到類似行事曆的APP : : 原本的方式是用 TableLayout 下去作, : : 發現速度上似乎有點慢,畢竟一個月有將近30~40個cell物件 : : 而且基本上寬度和高度都是進到畫面時就算好了, : : 無法用放大手勢動態增長, : : 後來我看見Android行事曆的Code : : 他是用onDraw自己畫的,程式非常複雜 : : 但是看起來好像比較快,且可以動態增長。 : : 想請問,有人是使用TableLayout或GridView : : 作到動態增長的嗎?(單方向即可) : : 另外,是不是類似這種較為複雜的UI, : : 大多都是自己畫? : 我目前是做到前後一百年沒問題 : 但是我的做法是先生出前後一百年的日期 : 所以你一開始在跑的時候會有約3~4秒的計算時間 : 之後只要掛在gridview 都沒什麼問題 : ====================================================== : 行事曆這種東西建議是自己刻 才會有深刻的體會 : 一開始我以為很簡單 所以就先使用android提供的calendar view : 結果發現只提供3.0以上才可以使用 : 因此我就上github求救 找到好多範例 : https://github.com/search?utf8=%E2%9C%93&q=calendar+android : 於是我每一個都下載下來玩 看哪一個最簡單 就抄他的 : 結果每一個都很難 一.,一 : 所以我只好找一個我看得懂的 而且有授權的套用 : 可是當我發現要客製化的時候 不是缺少事件 就是沒有手勢 : 因此就找一個我看的懂得來改 : 接著要加入viewpager進行左右滑動 變成蠻複雜的問題 : 後來上github參考很多人的範例 終於寫出來了 : 然後需求改成下方加入了一個listview並且要事件連動 : 我以為很簡單 結果還是很難 : listview造成上方viewpager掛太多事件 會卡卡的 : 因此我做了許多效能調校 : 終於寫好了 雖然效能沒有很好 但是還可以接受 : 然後需求又改成Viewpager必須垂直滑動 因為iOS是垂直滑動(乾~) : 所以我就去找很多範例 發現原生viewpager只提供左右移動 : 只好在上github求救 還好高手很多 好多人也有這樣的需求 : 我又找到很多寫好的垂直滑動Viewpager範例 但是我改不動 : 所以只好繼承他拿過來直接用 噩夢就此開始 : 因為掛太多view在calendar上面 : 導致一開始啟動程式會空白一片 : 後來查到原因是view還沒生出來 我的日期就好了 : 所以值跑出來 但是畫面卻跑不出來 : 因此我就用ViewTreeObserver 的方法解決掉 : 可是單純跑我的calendar開啟速度勉強可以接受 : 但是程式還有其他同事的程式大雜燴 只能哭哭惹 : 於是我繼續改效能 後來發現是vetical viewpager惹的禍 : 只好怒找其他的vertical viewpager : 總算讓我找到惹 也順利完成行事曆的基本型態 : 事情當然沒有想像中的簡單 : 需求又增加惹 : 不知道你有沒有看過LG G2的行事曆 : http://cf-attach.i-sogi.com/tw/article/img/201405/2014051208311244943.jpg
: 中間要可以往上拉 : 於是乎我怒吃一包餅乾 繼續改 : 一開始我想說listview連在gridview下方 : 然後手勢往上拉的時候 就把gridview縮成兩行 : 事情當然沒有笨蛋想的那麼簡單 : 每次都要改變layout是一件很蠢的事情 : 畫面不是跑掉 就是直接閃退或空白給你看 : 於是我只好用滑動方式 先將listview藏在螢幕下方外面 : 然後在慢慢往上拉 有點像slidemenu的上下版 : 結果證明! 我不是做動畫的材料 : 只好在上github求救 果然讓我找到一個slide panel的套件 : 這套件真的很白爛 下載下來怎麼build都build不了 : 後來才找到要加一包lib才可以build : 不過他效果寫的不錯 但是往上拉居然是放比例 : 害我必須算好整個畫面 丟進去 還常常不對 : 最近有更新 往上拉還會把gridview部分遮罩 真是夠惹 : 所以我又還原成舊的版本 : 事情就這樣結束了嗎? 沒有! : 因為加了這個第三方 所以整個畫面非常的卡 : 卡到不能接受 : 我只好從根本開始解 打從一開始用viewpager似乎就是錯誤的決定 : 因為他只能一頁一頁翻 : 可是如果我是使用者 我一定會想要快速的滾動他! : 所以上方我改用listview去改 下方也是listview : 結果居然讓我改成功惹! : 結論是如果能夠自己做 就自己做 : 不然繞很久 最後還是會繞回來der : 另外提供一包很厲害 你可以參考他的做法 : https://github.com/SimonVT/android-calendarview : 他好像把原生的calendarview改成可以向下相容到2.2 : 而且是用canvas畫的 速度非常快 : 不過裡面不符合我的需求 所以就沒有深入研究惹 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.30.199
※ 文章網址: http://webptt.com/m.aspx?n=bbs/AndroidDev/M.1412184313.A.C83.html
1F:→ JULONE780701: ListView要幹嘛用的? 10/03 10:45







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP