Android EditText için Shake Animasyonu

A

WordPress’in login sayfasından aşina olduğumuz shake efektini Android için de kullanmak mümkün. (Bahsettiğim efekte şuradan göz atabilirsiniz: http://jsfiddle.net/UbbEg/)

Android’in kullanım örneklerinde (samples) denk geldiğim animasyon uygulamaya ayrı bir hava katıyor. Geçelim nasıl uygulanacağına. Shake animasyonu için örnek proje açın ve main.xml’in LinearLayout kısmını aşağıdaki gibi değiştirin:

[code lang=”xml”] <EditText
android:id="@+id/llshake"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:singleLine="true"
android:password="true"
/>

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Shake!"
/>

[/code]

Daha sonra uygulama açarken oluşturduğunuz Activity sınıfının içeriğini aşağıdaki ile değiştirin:

[code lang=”java”]

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button loginButton = (Button)findViewById(R.id.button);
loginButton.setOnClickListener(this);
}

public void onClick(View v) {
Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
findViewById(R.id.llshake).startAnimation(shake);
}
[/code]

Sıra geldi onClick sırasında çağırılan animasyona. Uygulamanın res/ klasörü içerisine anim isminde bir klasör oluşturun. İçerisine de shake.xml ve cycle_7.xml isminde iki dosya oluşturun.

shake.xml içeriği:

[code lang=”xml”]

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="100"
android:duration="600"
android:interpolator="@anim/cycle"
/>

[/code]

cycle.xml içeriği:

[code lang=”xml”] <?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="7" />
[/code]

Yapılacaklar bu kadar. Dilediğiniz edit bileşenini koşullara bağlayarak animasyonu kullanabilirsiniz. Denemedim fakat, animasyonun farklı bileşenlerle de çalışması muhtemeldir (buton vb). Test edenler yorum bırakırsa sevinirim.

Animasyonu düzenlemek de mümkün; cycle.xml içerisindeki cycles=”7″ değeri kaç kez shake edileceğini gösteriyor.

Ayrıca shake.xml içerisindeki fromXdelta ve toXdelta sağa sola yapılacak hareketin boyutlarını, duration ise animasyonun toplam süresini (milisaniye) değiştirmekte.

Yorum yaz

Oğulcan

Arşivler

Kategoriler