SORU
2 Ocak 2011, Pazar


Anlayış Tuval ve Yüzey kavramları

SurfaceView ve bu nedenle tüm Android kullanılanSurface/Canvas/Bitmap sistem, çizim süreci anlamakta güçlük çekiyorum.

Android-geliştiriciler sitesinde android grafik birkaç öğreticiler, LunarLander kaynak kodu ve this question bulabildiğim makaleler ve API belgeleri tüm sayfaları, okudum.

Olmayan gerçek olan söyle bana, ve neden lütfen.

  1. Canvas Bitmap kendi kendisine bağlı. Surface Canvas kendi kendisine bağlı.
  2. Tüm View'pencere s Surface aynı paylaşmak ve böylece 10 ** paylaşır.
  3. SurfaceView, diğer aksine 13**'nın alt ve View kendisi çizmek için Surface kendi vardır. View alt sınıfı

Ayrıca ek bir soru var:

  • Neden zaten bitmap ile yüksek seviye işlemler için Canvas varsa Surface bir sınıf için bir ihtiyaç. Canvas Surface yapabilirsiniz hangi işi olmayan uygun bir durum örneği verin.

CEVAP
2 Ocak 2011, Pazar


İşte bazı tanımlar:

  • Bir Yüzey bir nesneyi ekrana birleştirilmiş ediliyor piksel tutuyor. Her pencereyi görüyor ekranda (bir iletişim kutusu, tam ekran aktivite, durum çubuğu) kendi yüzeyi çizer ve Yüzey Flinger işler bu son ekranda onların doğru Z-sırası. Bir yüzey, genellikle, birden fazla tampon (genellikle iki) için çift ara belleğe işleme: uygulama olabilir çizim sonraki UI devlet ise yüzey flinger. kompozisyon ekranını kullanarak son tampon gerekmeden beklemek için başvuru için son çizim.

  • Bir pencereyi masaüstünde bir pencere düşündüğün gibi temelde. Hangi pencerenin içeriğini işlenir tek bir Yüzeyi var. Bir uygulama bir Pencere Yöneticisi ile windows oluşturmak için etkileşim; Pencere Yöneticisi her pencere için bir Yüzey oluşturur ve çizim için uygulama sağlar. Uygulama Yüzey istediğini çizebilir; bir Pencere Yöneticisi için sadece opak bir dikdörtgen.

  • Görünüm penceresi içinde interaktif UI bir unsurdur. Bir pencere tek bir görünüm pencere davranışını tüm sağlayan, bağlı hiyerarşi vardır. Pencerenin yeniden çizilmesi (kendisi geçersiz olduğundan görünümü gibi) gerektiğinde, bu pencerenin Yüzeyinden yapılır. Yüzeyi çizmek için kullanılan bir Tuval döndüren kilitlendi. Beraberlik bir geçiş hiyerarşi aşağı, Tuval UI parçası çizmek için her görünüm için aşağı teslim yapılır. Bir kere yapılır, Yüzey kilidi ve yeni çizilen tampon sonra Yüzey Flinger tarafından ekrana birleştirilmesine ön plana takas böylece gönderildi.

  • Bir SurfaceView özel bir uygulama Görünüm oluşturur aynı zamanda kendi özel Yüzey için uygulama doğrudan çizin içine (dışında normal görünüm hiyerarşi, aksi halde paylaşmalısınız tek Yüzeyi için pencere). Bu işi daha basit olabilir bekliyoruz -- tüm SurfaceView mu sormak pencere yöneticisi oluşturmak için yeni bir pencere olduğunu söylüyordu. bunun için Z-sırası Bu pencere ya hemen arkasında veya önünde SurfaceView pencere ve konumunu maç nerede SurfaceView görünür içeren pencere. Eğer yüzey ana pencere (Z sırayla) arkasında, SurfaceView yüzey görülebilmesi için de şeffaflık ile ana pencerenin kendi bölümünü doldurur.

  • Bir Bitmap bazı piksel veri için bir arayüz. Pikseller olabilir ayrılan Bitmap kendisi de o zaman doğrudan yaratmak, ya da olabilir işaret için piksel değil kendi gibi ne kadar içten olur, sürekli bir Tuval bir Yüzey için çizim. (Bir bit Eşlem ve Yüzeyin geçerli çizim tampon için oluşturulan işaret.)

Ayrıca, bu da anlaşılacağı gibi unutmayın lütfen, bir SurfaceView çok ağır ve güzel bir nesne. Eğer belirli bir UI birden fazla SurfaceViews varsa, durdurmak ve bu gerçekten gerekli olup olmadığını düşünün. Eğer ikiden fazla varsa, neredeyse kesinlikle çok fazla var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EvilControllers

    EvilControll

    20 Ocak 2008
  • ShotgunSandwichENT

    ShotgunSandw

    3 EKİM 2012
  • YouChewBu

    YouChewBu

    26 Ocak 2009