Явные анимации для setAnimationStyle(), каковы мои варианты?

Я хотел бы попробовать разные стили анимации для всплывающего окна с помощью setAnimationStyle(), но я стараюсь понять документацию.

developer.android.com, говорит: "Стиль анимации для использования, когда всплывающее окно появляется и исчезает. Установите для -1 для анимации по умолчанию, 0 для без анимации или идентификатор ресурса для явной анимации".

Это не дает никаких примеров или говорит мне, какие варианты ресурсов доступны. Я подозреваю, что лучшая анимация для моих целей будет скользящей справа... это существует как вариант? Я могу выбрать эти вещи из списка или мне нужно каким-то образом создать свой собственный?

EDIT: Мой текущий код для создания моего всплывающего окна - это что-то вроде этого (упрощенного):

public void completed_dialog()
{
 runOnUiThread(new Runnable()
 {
 public void run()
 {
 View layout = inflater.inflate(R.layout.endofgame, null, false);
 Button b1 = (Button) layout.findViewById(R.id.pu_menu);
 Button b2 = (Button) layout.findViewById(R.id.pu_repeat);
 Button b3 = (Button) layout.findViewById(R.id.pu_next);
 b1.setBackgroundResource(R.drawable.custom_menu_but);
 b2.setBackgroundResource(R.drawable.custom_repeat_but);
 b3.setBackgroundResource(R.drawable.custom_next_but);
 b1.setOnClickListener(menu_button_click_listener);
 b2.setOnClickListener(repeat_button_click_listener);
 b3.setOnClickListener(next_button_click_listener);
 final PopupWindow pw = new PopupWindow(layout, canvas_width, 
 canvas_width /2, true);
 pw.setAnimationStyle(android.R.style.Animation_Dialog);
 pw.showAtLocation(game_frame_layout, Gravity.CENTER, 0, 0);
 }
 }
}

Теперь я добавил следующее в файл res/anim/test.xml:

<!--?xml version="1.0" encoding="utf-8"?-->
 <set xmlns:android="http://schemas.android.com/apk/res/android">
 <scale android:fromxscale="0.3" android:toxscale="1.0" android:fromyscale="0.3" android:toyscale="1.0" android:pivotx="0%" android:pivoty="0%" android:duration="@android:integer/config_shortAnimTime">
 <alpha android:interpolator="@android:anim/decelerate_interpolator" android:fromalpha="0.0" android:toalpha="1.0" android:duration="@android:integer/config_shortAnimTime">
 </alpha></scale></set>

Исходный код с pw.setAnimationStyle(android.R.style.Animation_Dialog); работал отлично, так как диалог появился со стандартной анимацией, но если бы я поменял эту строку на pw.setAnimationStyle(R.anim.test); анимации нет. Я понятия не имею, почему.

2 ответа

это рабочий пример setAnimationStyle() на моем конце:

Рез/аним/in.xml

<!--?xml version="1.0" encoding="utf-8"?-->
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator">
 </set>

Рез/аним/out.xml

<!--?xml version="1.0" encoding="utf-8"?-->
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
 </set>

макет /main.xml:

<!--?xml version="1.0" encoding="utf-8"?-->
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/layout">
 </relativelayout><button android:id="@+id/btn_show" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="show">
<p> <span> макет /popup.xml</span>:</p>
<pre class="prettyprint linenums"><!--?xml version="1.0" encoding="utf-8"?-->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#cccccc"> 
 </linearlayout>


Вы можете увидеть параметры в документации R.style. Но их не так много. Если вы хотите больше, вам нужно будет создать его самостоятельно. См. Базовое руководство здесь.

Еще несколько примеров анимаций, сделанных на заказ, можно найти на сайте быстрого хостинга google.

В соответствии с вашим комментарием, я думаю, вы должны указать идентификатор своего стиля как R.style.Animation_test.

licensed under cc by-sa 3.0 with attribution.