【问题标题】:How to replace b4a pop-up animation when starting Activities启动活动时如何替换b4a弹出动画
【发布时间】:2015-08-05 08:21:28
【问题描述】:

在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" />

我正在使用 5.0.2 版的 b4a 可以这样吗?

【问题讨论】:

    标签: android basic4android


    【解决方案1】:

    来自 b4x 论坛的This post 说您必须在调用 startActivity()finish() 之后立即调用 SetAnimation。 由于您的动画似乎可以正常工作,我猜您在调用其中一种方法后不会立即调用它,因此仍会应用默认动画。

    【讨论】:

    • 这就是我所说的设置动画
    • 好吧,对不起,我还不能发表评论,因为我缺乏声誉,所以我不得不写它作为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 2011-01-18
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多