我有一个小部件,可以在单击时启动活动。我希望有一些奇特的动画来显示这个活动,而不是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" />
但是我从哪里引用呢?我已尝试过我要插入的活动的基本元素,以及清单中的活动条目,两次都是
android:layoutAnimation="@+anim/anim"
我可能做错了。非常感谢任何帮助!
答案 0 :(得分:52)
您可以创建一个自定义主题,并引用您自己的动画,并将其应用于清单文件中的Activity。 我成功地使用以下样式定义为浮动窗口应用自定义动画。如果将样式的父级设置为“@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>
答案 1 :(得分:6)
startActivity(intent);
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
点击此链接:overridePendingTransition method
编辑:
实现视图的动画。您已经使用了如下所示的startAnimation方法
view.startAnimation(AnimationUtils.loadAnimation(
WidgetActivity.this,R.anim.slide_top_to_bottom));
检查link:
答案 2 :(得分:-1)
从小部件开始,编写一个教程以便您可以为您的活动设置动画,这无关紧要。此动画设置在您关注的活动中,因此您也可以使用pendingIntent执行此操作。
享受: