Вам нужна анимация Slide .
Я использовал ее в одном из своих приложений для Android.Я объясню это с помощью Explode Animation.
Допустим, у вас есть 2 действия A (GridList Activity) и B (DetailActivity).
A -> B
Вы можете достичь этого с помощью этих простых шагов
1.Включить передачу содержимого
Добавьте этот код в style.xml
<item name="android:windowContentTransitions">true</item>
2.Установите значение по умолчанию для входа и выхода из анимации
Напишите этот метод в упражнении А, который будет обрабатывать анимацию для вас.
public void setAnimation()
{
if(Build.VERSION.SDK_INT>20) {
Explode explode = new Explode();
explode.setDuration(1000);
explode.setInterpolator(new DecelerateInterpolator());
getWindow().setExitTransition(explode);
getWindow().setEnterTransition(explode);
}
}
3.Начните упражнение с намерения
Добавьте это в упражнение A для запуска занятия B. Обратите внимание, что анимация работает только над SDK>20
.Так что, если ваш min sdk ниже, вам также придется проверить SDK.Просто используйте этот фрагмент кода, и все будет хорошо.
public void startActivity(){
Intent i = new Intent(BlankActivity.this, AllImageActivity.class);
i.putStringArrayListExtra(MOVIE_LIST, movie.getImages());
if(Build.VERSION.SDK_INT>20)
{
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(BlankActivity.this);
startActivity(i,options.toBundle());
}
else {
startActivity(i);
}
}
Очень важно
Вы должны поместить setAnimation()
перед setContentView(R.layout.yourLayout)
, иначе анимация не будет работать.Таким образом, Задание A должно выглядеть следующим образом
Activity A extends .... {
@Override
protected void onCreate(Bundle savedInstaceState)
{
super.onCreate(savedInstaceState);
setAnimation();
setContentView(R.layout.image_landing_layout);
startActivity(); // Use as you wish
.......
}
public void setAnimation(){
..........
}
Я не пишу это ни в какой IDE, поэтому не обращайте внимания на синтаксические ошибки.Но это подтолкнет вас на правильный путь.
Вы можете проверить мой репозиторий .Но вам может быть трудно найти его там.Надеюсь это поможет.