2016-04-09 22 views
1

Şu anda yeni bir uygulama üzerinde çalışıyorum ve ona özelleştirilmiş animasyonlar eklemek istiyorum (etkinlik geçişlerinden bahsetmiyorum). tam olarak ne demek istediğimi göstermek için, 2 de bu videoya göz atın: 30-2: 33: https://www.youtube.com/watch?v=XBMdjX5bbvk&nohtml5=FalseAndroid uygulamasına animasyon ekleme

Sen göğüs ekranına atlama ve güzel animasyon ile sorunsuz açılır görüyor musunuz? Bir Android uygulamasına nasıl eklenebileceğini bilmek isterim, bu bir çerçeve animasyonu mu? Yani, bu animasyonu 2D olarak yapabilirim, sadece bellek taşmasına neden olmadan onu nasıl ekleyeceğimi bilmek istiyorum (Android Studio'yu kullanıyorum).

Teşekkürler! Senin için

cevap

1

soru:

Sen göğüs ekranına atlama görmek ve güzel animasyon ile sorunsuz açılır? Bir Android uygulamasına nasıl eklenebileceğini bilmek isterim, bu bir çerçeve animasyonu mu?

Çerçeve bir animasyon olduğunu sanmıyorum. Sanırım bu OpenGL kullanılarak uygulandı. Resmi eğitici here bulabilirsiniz.

Basit 2d animasyonlar yapmak istiyorsanız, android tarafından sağlanan AnimationDrawable api'yi kullanabilirsiniz. Temelde animasyonlar dizilerine yönelik çerçeveleri ve daha sonra size aşağıdaki kodu kullanarak animasyon oluşturabilirsiniz:

// you would need an `ImageView` object as a placeholder for the animation 
ImageView mMascotView = findViewById(...); 

// prepare the animation object .. 
AnimationDrawable mMascotAnimation = new AnimationDrawable(); 

final int frameTime = 250; // time in milliseconds 

// adding the frames to the animation object. You can specify different 
// times for each of these in milliseconds 
mMascotAnimation.addFrame(getResources().getDrawable(R.drawable.frame1),frameTime); 
mMascotAnimation.addFrame(getResources().getDrawable(R.drawable.frame2),frameTime); 
mMascotAnimation.addFrame(getResources().getDrawable(R.drawable.frame3),frameTime); 


// make it loop infinitely .. 
mMascotAnimation.setOneShot(false); 

// set the background of the `ImageView` as the `AnimationDrawable`object .. 
mMascotView.setBackground(mMascotAnimation); 

// start the animation .. 
mMascotAnimation.start(); 

Not: Sen faaliyet onCreate() yöntemi içinde AnimationDrawable.start() çağırmamalıdır. Görüşler henüz hazır değil. Geridönüşümü onWindowFocusChanged() yönteminde kullanmalı ve orada animasyonu başlatın:

@Override 
public void onWindowFocusChanged (boolean hasFocus) 
{ 
     //Start animation here 
     if(hasFocus) { 
      mMascotAnimation.start(); 
     } 
} 
+0

Teşekkür ederim – Yakirbu