YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Chinese, Traditional subtitles

← 02-07 Visualize_and_Fix_Overdraw_-_Solution

02-07 Visualize_and_Fix_Overdraw_-_Solution

Get Embed Code
13 Languages

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

  1. 在另外兩個檔案中你應該可以找到

  2. 四個不必要的背景編碼
  3. 我們一起來回顧一下
  4. 記住 我們希望在基礎介面
    XML裡保留白色背景
  5. 在聊天分段的XML檔案中
  6. 我們在這邊找到一個不必要的白色背景設定
  7. 因為在主要介面中已經做過設定了
    這個檔案就完成了
  8. 現在到聊天項目的XML檔案中
  9. 我們找到三個不必要的背景設定
  10. 這個不需要 這個不需要
  11. 最下面在TextView這裡也不需要
  12. 我們直接把它們通通移除
    好了
  13. 現在來看看過度繪製問題我們改善的如何
  14. 在這些不必要的背景被移除後
  15. 你的螢幕應該看起來像這樣
    是不是更乾淨了?
  16. 好了 做的好
    現在我們差不多完成了
  17. 只剩最後一個優化動作
  18. 注意看頭像這邊的過度繪製問題
  19. 因為這邊我們先畫了個四方型
    再把頭像圖繪製上去
  20. 我們來使點小聰明
  21. 讓背景只繪製在沒有頭像的區塊
  22. 我們可以設一些編碼條件來做到這點
  23. 好了
  24. 我們進入Chat Adapter編碼來看看
  25. 哪個部分是負責填入個別的聊天項目
  26. 我們先進入getView模式
  27. 下面這裡有個邏輯設定
  28. 同時顯示頭像與背景色
  29. 我們看看可不可以寫的聰明點
  30. 我們來寫個編碼讓背景色
  31. 只在頭像不存在時出現
  32. 當頭像出現時
    我們將背景色設為透明
  33. 讓它只需要繪製頭像
  34. 就像這樣做
  35. 好了 這是我們更新的編碼
  36. 你會發現當頭像不存在時
  37. 我們在頭像應該出現的地方
    設定一個透明的顏色
  38. 這邊的控制就完成
  39. 接下來到了Else的條件控制
  40. 當頭像存在時我們就讓它正常顯示
  41. 然後將頭像的背景色設為透明
  42. 這樣我們就成功減少過度繪製
  43. 好那我們來看看這個調整改善了多少
    漂亮
  44. 你現在可以看到我們頭像這邊
  45. 在更新編碼後降低了重複繪製的問題
  46. 好了 那是我們最後一個優化動作
    代表我們已經完成所有調整
  47. 我們再來複習一遍
  48. 在一開始
    我們的過度繪製情況非常明顯
  49. 我們第一件事情
    是把背景繪圖設為無效值
  50. 第二件事
    將不必要的背景編碼
  51. 從XML標記中移除
  52. 最後一件事
    是在沒有頭像存在時
  53. 再顯示背景色
  54. 做了這些修改後
    我們得到這個結果
  55. 從過度繪製的角度來看
    它變得更乾淨了
  56. 做的太棒了
  57. 要記住 性能表現真的很重要