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/cn.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灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP