gpt4 book ai didi

java - 如何以编程方式在 Android 上加载 animator xml 文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:39 25 4
gpt4 key购买 nike

根据 the Android developer site ,我们可以从位于如下路径的 xml 文件中以编程方式加载 AnimatorSet 类:res/animator/filename.xml。所以我创建了一个示例项目并尝试查看它是否真的有效,但它没有;什么都没发生。如果我能理解遗漏了什么和/或我做错了什么,那就太好了。提前致谢!下面是我的动画 xml 文件和加载 xml 的 Java 代码:

res/animator/sample.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially"
>
<set>
<objectAnimator
android:propertyName="x"
android:duration="500"
android:valueTo="400"
android:valueType="intType"
/>
<objectAnimator
android:propertyName="y"
android:duration="500"
android:valueTo="300"
android:valueType="intType"
/>
</set>
<objectAnimator
android:propertyName="alpha"
android:duration="500"
android:valueTo="1f"
/>
</set>

这是我加载上面 xml 文件的 Java 代码:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
// Load and start Animaton
AnimatorSet animSet =
(AnimatorSet) AnimatorInflater.loadAnimator(view.getContext(), R.animator.sample);
animSet.setTarget(view);
animSet.start();
}
});

最佳答案

您的集合包含另一个集合 res/animator/sample.xml。简化它

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

<objectAnimator
android:propertyName="alpha"
android:duration="500"
android:valueTo="1f"
/>
</set>

你像这样给 AnimatorSet 充气

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(getActivity(), R.animator.sample);
set.setTarget(fab); // set the view you want to animate
set.start();

到目前为止,我还没有找到将 objectAnimator 从 xml 扩展到 Java 的方法。我必须将它包装在 Set

关于java - 如何以编程方式在 Android 上加载 animator xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33745029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com