YouTube

Got a YouTube account?

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

Turkish subtitles

← 02-12 Fixing_Overdraw_with_Canvas_API

02-12 Fixing_Overdraw_with_Canvas_API

Get Embed Code
13 Languages

Showing Revision 4 created 01/20/2016 by QA_SP_6_TK.

  1. Pekâlâ, işte tekrar
    Android Studio'dayız,
  2. DroidCardsView'un kaynağını inceleyeceğiz.
  3. Bu bizim özel görünümümüz.
  4. Hatırlayalım, oyun kartı destesini
    geliştirdiğimiz yer, bu özel görünümdür.
  5. Örneğin, her kart kendi
    bit eşlemine sahip ve
  6. onDraw metodunu
    kullanarak bunları ekrana çiziyoruz.
  7. Hatırlayın, Android, onDraw metoduyla,
    bu görünümün oluşturulmasını
  8. optimize edemeyecektir.
    Bu nedenle, geliştiriciler olarak
  9. bizim görevimiz, gereksiz abartılı
    çizimlerden kaçınmak için
  10. ekrana çizilirken her bir kartı
    uygun biçimde kırpmaktır.
  11. Şanslıyız ki, Tuval API, kartlarımızı
    daha verimli çizmek için ihtiyacımız
  12. olan doğru metotları sağlar.
  13. Dokümantasyona bir bakalım.
  14. Kodumuzu geliştirmek için,
    canvas.clipRect metodunu kullanalım.
  15. Dört kaydırmayı, parametre olarak alan
    bu değişkeni kullanacağız.
  16. Tamam, tekrar Android Studio'dayız.
  17. Bu abartılı çizimi sadeleştirmek için,
    basamaklı düzendeki kartları keselim.
  18. Android Studio'daki bu havalı özelliği,
    bir diff görünümü getirmek için
  19. kullanacağım, böylece kodun önceki
    ve sonraki durumunu görebileceksiniz.
  20. Şimdi karşılaştırma görünümündeyiz,
    özellikle kullanmakta olduğumuz
  21. onDraw metoduna bakacağız.
  22. Sol tarafta döngünün
    eski hâlini görüyoruz,
  23. ama gelin, sağ tarafta yapacağımız
    ilerlemelere odaklanalım.
  24. Kartlarımızın üzerinden geçerken,
    ilerlememizin her bir adımını inceleyelim.
  25. İlk olarak, kart pozisyonunu
    hesaplayacağız.
  26. Daha sonra, verili tuval durumunu
    kaydedecek olan
  27. canvas.save işlevini çağıracağız.
  28. Diğer bir deyişle,
  29. ekranınızın, clipRect API'yı uygulanmadan
    önceki durumunu sürdürür.
  30. Bu clipRect metodunu çağırdığımızda,
  31. temel olarak bazı geometrik
    sınırlamalar uygularız.
  32. Bu parametreleri geçirdiğimizde,
    sisteme, kartların sadece görmek
  33. istediğimiz kısımlarını çizmesini
    söylemiş oluruz.
  34. Geri kalan kısım ise saklı kalır.
  35. Yalnızca belirlediğimiz sınırların
    içinde kalan kartların
  36. kısımları çizilecektir.
  37. Son olarak, canvas.restore
    metodunu çağıracağız,
  38. bu metot, tuvali kırpılmamış
    hâline döndürecek.
  39. Diğer bir deyişle,
  40. clipRect metodunu çağırdığımızda
    uyguladığımız sınırlamaları kaldıracak.
  41. Sonra bu döngüyü, en üstteki hariç,
    tüm kartlarda tekrar ediyoruz.
  42. Özellikle en üstteki ve son kartı,
    altındaki kardeşlerden
  43. farklı biçimde işleme
    tabi tutacağız.
  44. Bunun için, kırpmaya gerek yok,
  45. o yüzden, devam edip tamamını çizeceğiz.
  46. Buradaki bildirim vasıtasıyla,
    bunu görebilirsiniz.
  47. Pekâlâ, geliştirdiğimiz
    kodumuzu uygulayalım
  48. ve abartılı çizimleri sadeleştirip
    sadeleştiremediğimize bakalım.
  49. Pekâlâ, harika.
  50. Gördüğünüz gibi,
    daha az abartılı çizim var.
  51. Umarım, Tuval API'nın, özel görünümlerle
    çalışırken, çizim yapmanın
  52. verimli bir yolu olduğu
    açık hâle gelmiştir.
  53. Tuval API'yı daha fazla
    keşfetmek isterseniz,
  54. eğitmen notlarındaki tam
    dokümantasyona başvurun.
  55. Bunlar gibi görünümler, benzersiz
    ve ilgi uyandıran bir kullanıcı deneyimi
  56. yaratmamıza yardım eder, fakat
    unutmayın ki, Android'in başarılı biçimde
  57. böyle görünümler yaratmasını sağlamak
    için sisteme ipuçları sağlamalıyız.
  58. Her ne zaman bir özel görünüm
    yaratırsanız, abartılı çizimleri
  59. kontrol etmeyi ve dostumuz clipRect
    metodunu çağırmayı unutmayın.
  60. Pekâlâ, iyi iş çıkardık.
  61. Şimdi, daha çok perf bilgisi için
    sözü yine Colt'a bırakalım.