2010-01-24 21 views
22

Tuval (Android) üzerine ben Android'de Tuval nesnenin üzerine dokuz yama çizmeye çalışıyorum. Ne garip görünüyor ben draw9patch aracını kullanarak benim dokuz yama oluşturulan rağmen, NinePatch için yapıcı dokuz yama inşa etmek "yığın" adında ek bayt dizisi gerektirir.Çizim Dokuz Yama

Neden bu daha basit değil mi? "Chunk" nedir? Ve eğer bunu kendin yapmış olsaydın, bunu nasıl yaptın?

Herhangi bir yardım için teşekkür ederiz.

cevap

73

Kolayca bu şekilde yapabilirsiniz:

// Load the image as a NinePatch drawable 
NinePatchDrawable npd = (NinePatchDrawable)Resources.getDrawable(R.drawable.my_nine_patch); 

// Set its bound where you need 
Rect npdBounds = new Rect(...); 
npd.setBounds(npbBounds); 

// Finally draw on the canvas 
npd.draw(canvas); 
+0

Ama belirli bir boyutuna sığacak şekilde görüntüyü gerekir. Aksi takdirde dokuz yama kullanmazdım. –

+7

Yukarıda belirttiğim kodda, 'd' nesnesi aslında bir 9patch kaynağının kimliğini getDrawable verdiğinizden beri NinePatchDrawable örneğidir. Yani NinePatchDrawable NPD = (NinePatchDrawable) d yapabilirdi; Bu sizin amaçlarınız için işe yaramayacak mı? –

+0

Sadece denedim: mükemmel çalışıyor. Çok teşekkür ederim –