2012-06-12 15 views
10

İş arkadaşım ve ben her biri benzer bir stile sahip iki uygulama geliştirdik. Bu uygulamaların ana görünüm arka planı radyal bir eğimdir. Onun dokuz yama görüntü olarak uyguladı ve ben bir şekil çekilebilir yaptı. Her ikisi de benzer ve kabul edilebilir sonuçlar üretir.Nine-Patch Drawable vs Şekil Çizilebilir. Hangisi tercih edilmeli?

Benim sorum şu ki, hangisini kullanmalıyız? Bellek tüketimi ve performans arasında ticaret var mı? Görüntünün yüklenmesinin zaman alabileceğini tahmin ediyorum, ancak çizilebilecek şeklin çizilmesi daha fazla zaman alıyor (hesaplamalar nedeniyle). Bunlar daha sonra bir önbellekte saklanır ve bu cezalar sadece ilk kez görüntülendiğinde veya bu sorunlar devam ediyor mu? Drawable

Şekli:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <gradient 
     android:startColor="#003472" 
     android:endColor="#000034" 
     android:gradientRadius="350" 
     android:type="radial"/> 
</shape> 

Dokuz Patch:

enter image description here

cevap

3

Şekli çekilebilir basit sabit renk değişiklikleri ile resimlerinizin eğimli tür için mükemmeldir. Diğer taraftan, 9 yama görüntüleri, çok fazla ayrıntıya sahip görüntüler için, streching bölgelerinde sabit renk için mükemmeldir.

+0

:

modu detayları için onun cevabını bir göz atın. Ancak, bizim durumumuzda performans ve hafıza tüketimi hakkında ne. Örneğin, görüntü kabaca 30K. Bunu çeşitli Aktifler için arka plan olarak kullanırsak, şekil çekilebilir olandan daha fazla bellek tüketir mi? – jsmith

+0

@jsmith Performans: 10-20 ms bir sorun olmamalı, bu yüzden hiçbir şey söylemem. Bellek tüketimi: her ikisi de çalışma zamanında yeniden oluşturulduğundan, tüketilen hafıza da aynı olmalıdır. (Her ikisi de sonunda verilen büyüklükte bitmap verisi göz önüne alındığında) –

1

Daha önce bu soruna çarptım.

XML'DE ŞEKİLLERİ KULLANMAYIN VEYA BUNLARI İÇEREN ANİMASYON VAR. Bunun nedeni, önbelleklemenin (özellikle de donanım hızlandırmayı kullanıyorsanız), ekranın sık sık yenilenmeyeceği için gerçekten "laggy" görünmesini sağlayacaktır.

+2

Biraz daha fazlasını açıklayabilir misiniz? Yani, XML şekli kendini hareket ettirdiğinde mi? Veya başka bir şey? –

0

@Ivan Bartsov'un verdiği cevaba bir bakın. Ancak dikkatli bir kod analizi ile, çoğu genel durum için 9 yamanın kullanılmasının, daha az işlemin oluşturulmuş gradyanlardan daha az bellek gerektirdiği sonucuna varır. Bu nedenle çoğu vaka için 9 yamayı kullanmak en iyisidir. Sonuç kalitesi için iyi kriterlerini var What should i use for better performance, nine-patch or drawable xml resource?

İlgili konular