Chinese, Traditional subtitles

← 02-12 Fixing_Overdraw_with_Canvas_API

02-12 Fixing_Overdraw_with_Canvas_API

Get Embed Code
13 Languages

Showing Revision 1 created 01/08/2016 by sp8.

  1. 好了 我們現在回到了
    Android Studio
  2. 我們來檢視DroidCardsView的編碼
  3. 再次強調 這是我們的自訂視圖
  4. 我們回顧一下 這是在自訂視圖裡
    建立的一疊牌
  5. 舉例來說 每張牌會有自己的點陣圖
  6. 而我們是透過覆蓋onDraw方法
    來將它們繪製到螢幕上
  7. 記住 我們覆蓋了onDraw方法以後
  8. 安卓就無法在彩現這視覺時進行優化
  9. 這會是我們身為開發人員的工作
  10. 來正確裁剪每張繪製到畫面上的牌
    並避免不必要的重複繪製
  11. 還好Canvas API給了我們最好的方法
  12. 來更有效率的繪製我們的牌
  13. 我們來看一下編碼檔案
  14. 我們可以用canvas.clipRect方式
    來改善編碼
  15. 我們會選擇這個變種
    它會拿四個浮點作為參數
  16. 好了 現在再回到Android Studio
  17. 我們來針對這疊牌做些微調
    好改善重複繪製的情況
  18. 我會用Android Studio裡
    這個好玩的功能
  19. 現在你就能比對修改前後的編碼
  20. 我們現在進入對照模式
  21. 特別來看一下onDraw方式
    這就是我們要覆蓋的地方
  22. 左邊是原本的for迴圈
  23. 我們來看看右邊能如何做改善
  24. 我們針對每張牌一步步做改善吧
  25. 首先 我們來計算牌的位置
  26. 然後我們叫出canvas.save這個功能
  27. 它會儲存我們現有的畫布狀態
  28. 換句話說
  29. 它會保持我們套用clipRect API
    之前的畫面狀態
  30. 當我們叫出clipRect方式
  31. 我們基本上是在下一些幾何限制
  32. 當我們輸入這些參數
    我們基本上是在叫系統
  33. 只要繪製出我們想看的牌
    它的局部畫面
  34. 明顯的 剩下的部分會被隱藏
  35. 只有在設定界線裡出現的牌
  36. 會被繪製
  37. 最後我們會叫出canvas.restore
  38. 它會將畫布返回到沒有裁剪的狀態
  39. 換言之 它會解除
    我們剛剛叫出clipRect所設下的限制
  40. 我們在每張牌的編碼裡重複這個迴圈
    除了最上面那張牌
  41. 我們特別把最上面也是最後那張牌
  42. 做出不同於下面其他牌的處理
  43. 這張牌不需要任何裁剪
  44. 所以我們會將它完整繪製
  45. 透過這邊這個語句完成
  46. 好了 我們來在編碼裡完成改善
  47. 看看我們降低了多少重複繪製
  48. 好了 太棒了
  49. 你可以看到過度繪製情況少很多了
  50. 我希望這課程有讓你清楚了解
    Canvas API有個直接的方式
  51. 讓你在自訂視圖中更有效率的繪製
  52. 如果你希望多了解Canvas API
  53. 記得到導師註記裡去看完整的文獻
  54. 這樣的視圖可以幫助我們
    創造獨特且引人注目的UX
  55. 但記住我們要給系統一些提示
  56. 來幫助安卓更有效率完成彩現
  57. 當你在創造自訂視圖時
    記住要檢查過度繪製
  58. 並適時叫出clipRect方式
  59. 好了 做的太棒了
  60. 我們接下來讓柯特
    分享更多效能的智慧