YouTube

Got a YouTube account?

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

Portuguese, Brazilian subtitles

← 02-07 Visualize_and_Fix_Overdraw_-_Solution

02-07 Visualize_and_Fix_Overdraw_-_Solution

Get Embed Code
13 Languages

Showing Revision 2 created 12/29/2015 by QA_SP_2_PT_BR.

  1. Então deveria haver
    quatro fundos desnecessários

  2. nos arquivos restantes,
    vamos em frente e rever isso.
  3. Em nossas atividades base XML,
  4. lembra que queríamos este fundo branco?
  5. Agora, no arquivo XML
    de nosso fragmento de bate-papo,
  6. nós declaramos um fundo branco
    desnecessário aqui.
  7. Não precisamos desse,
    podemos usar o branco
  8. de nossa atividade principal,
    é tudo para este arquivo.
  9. No XML para nossos itens
    individuais de bate-papo,
  10. Temos três fundos desnecessários.
  11. Temos um aqui que nós não precisamos
  12. um aqui mesmo que não precisamos,
  13. e, aqui em baixo, não precisamos
    deste fundo branco em nossa text view
  14. Então podemos removê-los.
  15. Perfeito, legal!
    Vamos ver que progresso
  16. fiizemos com relação ao overdraw.
  17. Agora, sua tela estar algo assim
  18. com estes fundos devidamente removidos.
  19. Bem mais limpo, certo?
    Legal, bom trabalho.
  20. Estamos quase terminando,
  21. mas há uma última otimização
    que você pode fazer.
  22. Observe que há overdraw
    aqui junto dos avatares,
  23. porque estamos desenhando um retângulo
    e a imagem de avatar em cima dele.
  24. Vamos ser um pouco mais inteligentes
  25. vamos apenas definir um fundo
    quando um avatar não pode ser encontrado.
  26. Podemos fazer isto
    com código condicional.
  27. Vamos pular para o código
    de adaptador de bate-papo,
  28. responsável pelo preenchimento
  29. de nossos itens de bate-papo
    individuais carregados.
  30. Vamos para o nosso método getView.
  31. Aqui em baixo realmente
    temos alguma lógica
  32. que está exibindo o avatar
  33. e definindo uma cor de fundo
    ao mesmo tempo.
  34. Vamos tentar ser mais inteligentes aqui.
  35. Vamos escrever um código
    que apenas defina a cor de fundo
  36. quando um avatar não está presente.
  37. E quando está, vai definir
    a cor de fundo como transparente
  38. e apenas carregar o avatar.
  39. Podemos fazer isso assim.
  40. Então aqui está o nosso código atualizado.
  41. Observe que quando um avatar
    não está presente,
  42. o que vamos fazer é carregar
    uma cor transparente
  43. para onde o avatar estaria normalmente,
  44. e então definir uma verdadeira
    cor de fundo para o avatar.
  45. Agora, no outro caso,
    quando o avatar está presente,
  46. Vamos avançar e
    carregar devidamente o avatar,
  47. e depois vamos definir
    a cor de fundo para transparente.
  48. Assim minimizamos o overdraw.
  49. Vamos então avançar e
    ver como esta melhoria nos ajuda.
  50. Como pode ver aqui junto dos avatares,
  51. muito menos overdraw
    com nosso código atualizado.
  52. Então essa foi nossa última otimização,
  53. ou seja, terminamos,
    vamos seguir e rever.
  54. Quando começamos,
    nosso overdraw era mais proeminente.
  55. Primeiro definimos o desenhável
    do fundo para null.
  56. A segunda coisa que fizemos
  57. foi excluir declarações de fundo
    desnecessárias da nossa marcação XML.
  58. A terceira e última coisa que fizemos
  59. foi exibir uma cor de fundo,
    somente se não houver nenhum avatar.
  60. Com essas mudanças,
    acabamos com isto.
  61. Bem mais limpo em termos
    de desempenho de overdraw.
  62. Bom trabalho!
  63. E lembre-se,
    desempenho importa.