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.
Canvas
Bitmap
kendi kendisine bağlı.Surface
Canvas
kendi kendisine bağlı.- Tüm
View
'pencere sSurface
aynı paylaşmak ve böylece 10 ** paylaşır. SurfaceView
, diğer aksine 13**'nın alt veView
kendisi çizmek içinSurface
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
varsaSurface
bir sınıf için bir ihtiyaç.Canvas
Surface
yapabilirsiniz hangi işi olmayan uygun bir durum örneği verin.
CEVAP
İş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.
::Anlayış artırmak disjoint_sets...
Gif/jpg/png/HTML olarak Tuval pdf yaka...
Anlayış MVC Deseni...
Anlayış Bahar @Autowired kullanımı...
Yeniden Boyutlandırma (aşağı ölçek) Yü...