Освой программирование играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
В Android есть удобный класс AnimationUtils для созданий анимаций различных видов. Для разных анимаций нужно вызывать разные статические методы, которые возвращают класс Animation:
Рассмотрим простой пример использования некоторых методов анимации. Добавьте в разметку кнопку и компонент View:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hapticFeedbackEnabled="true"
android:onClick="onClick"
android:text="Я кнопка" />
<View
android:id="@+id/view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00f" />
</LinearLayout>
Напишем код для щелчка кнопки:
package ru.alexanderklimov.animation;
import ...
public class TestActivity extends Activity {
View viewToAnimate;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
viewToAnimate = findViewById(R.id.view);
}
public void onClick(View v) {
if (viewToAnimate.getVisibility() == View.VISIBLE) {
// если элемент видим, то сдвигаем вправо
Animation out = AnimationUtils.makeOutAnimation(this, true);
viewToAnimate.startAnimation(out);
viewToAnimate.setVisibility(View.INVISIBLE);
} else {
// если элемент невидим, то выходим из сумрака
Animation in = AnimationUtils.loadAnimation(this,
android.R.anim.fade_in);
viewToAnimate.startAnimation(in);
viewToAnimate.setVisibility(View.VISIBLE);
}
}
}
Другие методы анимации попробуйте самостоятельно.