2011-07-20 35 views
7

Görünümümde, çağrıldığında çizilen şekillerden bazılarını değiştiren bazı yöntemlerim var. Bileşenin güncellendiğinden emin olmak için Java'da repaint()'u arardım. Görünümümün doğru şekilde güncellendiğinden emin olacak bir şey var mı?Android Görünümleri değişikliklerle nasıl güncellenir?

ben onDraw() yönteminde invalidate() arayarak güncel şeyleri tutmak olacağını okumuştum ve bu nedenle çizilir şekiller o modifiye benim yöntemlerde repaint() gibi bir şey olması gerek olmazdı.

Bu doğru mu, yoksa yapmam gereken başka bir şey var mı?



bir örnekte eklemek için DÜZENLEME, benim görünümünde dediğimiz bir yöntemdir: kendi kendine yeniden çizmek gerekiyor görünümü söyleyecektir invalidate() çağrılması

public void setLineThickness(int thickness) { 
    aLineThickness = thickness; 

    if(aLineThicness > 1) 
     //repaint();  - Okay in Java but not in Android 

} 

cevap

16

(onDraw'u call) bazen de gelecek. Yani görüşünüzde bir şey değiştirirseniz, çizgi kalınlığı gibi, invalidate() öğesini ondan sonra arayın. Bu şekilde görüşünüzü bildiğiniz zaman güncellenecektir.

Tüm çizim kodlarınız onDraw() uygulamasında uygulanmalı ve diğer yöntemleriniz yalnızca görünümünüzün durumunu değiştirmeli, daha sonra invalidate() öğesini çağırdıktan sonra çizmek için kullanılacaktır.

+0

Seni düzgün takip edersem, 'setLineThickness' yöntemimde invalidate()' yi çağırmalıyım? – StartingGroovy

+1

Görüşünüzün kullanıcısını aramak zorunda olma konusunda endişelenmemek istiyorsanız, o zaman evet. Ben oraya koyardım (yöntemde son satırı yap) –

+0

Teşekkür ederim, bunu deneyeceğim ve nasıl gittiğini göreceğim – StartingGroovy