如何在启动活动时替换b4a弹出动画

时间:2015-08-05 08:21:29

标签: android basic4android

在basic4android中,当一个Activity开始时,它会从我手机屏幕的一角弹出。

我尝试在活动之间为动画创建XML文件,但仍然活动以我的动画开始沿着恼人的弹出动画。

我想摆脱它并使用我的自定义动画。

我正在使用此函数和两个XML文件来创建动画:

Sub ListView1_ItemClick (Position As Int, Value As Object)
    StartActivity(Value)
    SetAnimation("file1", "file2")
End Sub

Sub SetAnimation(InAnimation As String, OutAnimation As String)
    Dim r As Reflector
    Dim package As String
    Dim In, out As Int
   package = r.GetStaticField("anywheresoftware.b4a.BA", "packageName")
    In = r.GetStaticField(package & ".R$anim", InAnimation)
    out = r.GetStaticField(package & ".R$anim", OutAnimation)
    r.Target = r.GetActivity
    r.RunMethod4("overridePendingTransition", Array As Object(In, out), Array As String("java.lang.int", "java.lang.int"))
End Sub

和XML文件

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="400"
        android:fromAlpha="0.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="1.0" />

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
   android:duration="400"
        android:fromAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="0.0" />

我正在使用b4a的5.0.2版本 情况会是这样吗?

1 个答案:

答案 0 :(得分:0)

来自b4x论坛的

This post表示您必须在致电startActivity()finish()后立即致电SetAnimation。 由于您的动画似乎有效,我猜您在调用其中一种方法后不会立即调用它,因此仍会应用默认动画。