Отображение активности с пользовательской анимацией - PullRequest
29 голосов
/ 21 июня 2010

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

slide_top_to_bottom.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromYDelta="-100%" android:toXDelta="0" android:duration="100" />
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="50" />
</set>

... на который ссылаются в anim.xml

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
        android:delay="50%"
        android:animation="@anim/slide_top_to_bottom" />

Но тогда откуда я на него ссылаюсь?Я пробовал как базовый элемент действия, в которое я хочу войти, так и запись activitiy в манифесте, оба раза с

android:layoutAnimation="@+anim/anim"

Возможно, я все делал неправильно.Любая помощь очень ценится!

Ответы [ 3 ]

52 голосов
/ 20 ноября 2010

Вы можете создать собственную тему со ссылкой на собственную анимацию и применить ее к своей активности в файле манифеста.Мне удалось применить пользовательскую анимацию для плавающего окна, используя следующее определение стиля.Возможно, вам удастся сделать что-то похожее, если вы установите родителем своего стиля значение «@android: style / Animation.Activity»

. Для получения дополнительной информации о том, что вы можете переопределить, посмотрите следующие файлы.*

https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml

Вот моя часть моего styles.xml и manifest.xml

styles.xml

<style name="MyTheme" parent="@android:style/Theme.Panel">
    <item name="android:windowNoTitle">true</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:windowAnimationStyle">@style/MyAnimation.Window</item>
</style>

<!-- Animations --> 
<style name="MyAnimation" /> 

<!-- Animations for a non-full-screen window or activity. --> 
<style name="MyAnimation.Window" parent="@android:style/Animation.Dialog"> 
    <item name="android:windowEnterAnimation">@anim/grow_from_middle</item>
    <item name="android:windowExitAnimation">@anim/shrink_to_middle</item>
</style> 

Manifest.xml

    <activity
        android:name="com.me.activity.MyActivity"
        android:label="@string/display_name"
        android:theme="@style/MyTheme">
    </activity>
6 голосов
/ 21 июня 2010
startActivity(intent);
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);

Проверьте эту ссылку: метод overridePendingTransition

Редактировать:

Чтобы получить анимацию для представлений.Вы использовали метод startAnimation, как показано ниже

view.startAnimation(AnimationUtils.loadAnimation(
                 WidgetActivity.this,R.anim.slide_top_to_bottom));

Проверьте эту ссылку :

0 голосов
/ 09 февраля 2012

Неважно, что вы, начиная с виджета, написали учебник, чтобы вы могли анимировать свои действия и выходить. Эта анимация устанавливается в рамках действия, которое вы вводите в фокус, поэтому вы можете сделать это и с помощью pendingIntent.

Наслаждайтесь:

http://blog.blundellapps.co.uk/animate-an-activity/

...