2010-03-29 10 views
6

Herkese açık,Yeni Android için - Arka planda çalışma sayfası görüntüleme

Sadece Android için geliştirmeye başladım. IPhone uygulamalarımdan birine bağlanmayı arıyorum, ancak çalışma zamanında bir görünümün nasıl çizileceği konusunda bir kayıp yaşıyorum (XML'de bildirilmeyen bir görünüm). Temel olarak, basit bir dikdörtgen çizmek istiyorum, ancak çizildikten sonra çerçevesini manipüle edebiliyorum.

Bu gerçekten çok basit bir soru olsa üzülüyorum, ancak burada iPhone SDK'ya eşdeğer bir şey bulamıyorum.

Şimdiden teşekkürler!

cevap

7

2D grafikleri denemek istediğiniz gibi geliyor - bunun için Canvas kullanmalısınız. Tuval'in çizimini, Android'e özelleştirilmiş onDraw() yönteminizi tetikleyen her şeyi yeniden çizmesini söyleyen invalidate() yöntemiyle kontrol edebilirsiniz. XML dosyasını kullanmak istemediğinizi söylüyorsunuz, ancak bu, bir Tuvali yerleştirmenin en basit yoludur - içeriğini XML dosyasında tanımlamanız gerekmez, ancak düzen dosyasını orada anlatmanız yeterlidir. Uygulamanıza bir Canvas koymanın güçlü ama basit bir yolu, bir Görünümü özelleştirmektir. Örneğin, XML dosyanızda bir <your.package.CustomView android:.../> öğesini dahil edin. Sonra CustomView extends View sınıfını bildirin. Yapmak istediğiniz her türlü çizim, onDraw() yöntemine yerleştirilir. Örneğin, bir dikdörtgen çizmek için, bunun gibi bir şey yapın. programınızdan denir

//First you define a colour for the outline of your rectangle 
rectanglePaint = new Paint(); 
rectanglePaint.setARGB(255, 255, 0, 0); 
rectanglePaint.setStrokeWidth(2); 
rectanglePaint.setStyle(Style.STROKE); 

//Then create yourself a Rectangle 
Rect rectangle = new Rect(left, top, right, bottom) //in pixels 

//And here's a sample onDraw() 
@Override 
public void onDraw(Canvas canvas){ 
    rectangle.offset(2, 2); 
    canvas.drawRect(rectangle, rectanglePaint); 
} 

Her zaman invalidate(), görünüm yeniden çizilmesi ve dikdörtgen aşağı ve sağa 2px taşınır. Not: Yeniden çizim yalnızca ana iş parçacığı ile gerçekleşir 'bekliyor'. Diğer bir deyişle, çağıran bir çağırma birkaç kez geçersiz kılarsa, Görünüm döngü bitinceye kadar çekilmez. Bunu aşabilirsin ama bu daha fazla komplikasyon ekler. Bunun nasıl yapıldığıyla ilgili bir örnek için, Google'dan LunarLander örnek oyununa bakın. Özel bir View, 2 iş parçacığını ve sürekli animasyonu nasıl uygulayacağınızı gösteren basit bir oyun.

+0

Güzel çalışıyor, teşekkürler! –