java - 平移动画 - 结束位置

标签 java android

我需要在一秒钟内将动画平移到 X (150) 和 Y (100) 位置来为我的 View 设置动画。使用此代码运行良好:

Animation translate = new 
TranslateAnimation(0, 150 - view.getLeft(), 0, 100 - view.getTop());
translate.setDuration(1000);
view.setAnimation(translate);
translate.start();

但是当动画完成时,我需要 View 保持在这个位置 (150, 100),然后我调用了 setAnimationListener 并执行了以下操作:

@Override
public void onAnimationEnd(Animation animation) {
    if (animation == translate) {
        RelativeLayout.LayoutParams params = new 
        RelativeLayout.LayoutParams(view.getWidth(), view.getHeight());
        params.topMargin = 100;
        params.leftMargin = 150;
        view.setLayoutParams(params);
    }
}

问题在于,在动画结束时, View 闪烁一次(非常快,几乎难以察觉),然后 View 移动到另一个位置,非常接近所需位置 (150, 100),但不完全一样。

如果我设置translate.setFillAfter(true)它就可以工作。但是,如果我需要将另一个动画应用到同一 View ,它会按预期工作吗?

最佳答案

您需要添加以下内容:

fillAfter=true
fillEnabled=true

关于java - 平移动画 - 结束位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24015841/

相关文章:

android - 在 ArrayAdapter 中设置 ArrayList<HashMap<String,String>>

java - 你有 "architecture for architecture' s 的好例子吗?

android - 如何使用它的名字杀死应用程序?

java - Java 中的 PriorityQueue 构造函数

java - 编写高效代码和优化内存

java - 在 InputStream 之前获取 FileSize

java - Android 应用程序中的 HttpClient 请求失败,没有任何异常

android - 在 BarChart MPAndroidChart 条形图外垂直旋转值文本

java - java中的方法数组

java - 如何获取托管网络中代理服务器的名称或 IP?