首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

应用于ImageView的TranslateAnimation留下了痕迹

作为一个云计算领域的专家,我可以为您提供关于ImageView的TranslateAnimation留下痕迹的解决方案。

首先,我们需要了解TranslateAnimation是一种在Android中的动画效果,它可以使视图在屏幕上移动。当我们使用TranslateAnimation时,可能会遇到留下痕迹的问题,这是因为在动画执行时,视图的位置发生了变化,但是在动画结束后,视图的位置并没有恢复到原来的位置。

为了解决这个问题,我们可以使用一种方法来重置视图的位置。具体来说,我们可以在动画结束后,使用setTranslationX和setTranslationY方法来重置视图的位置。

以下是一个示例代码:

代码语言:java
复制
TranslateAnimation animation = new TranslateAnimation(0, 100, 0, 0);
animation.setDuration(1000);
animation.setFillAfter(true);
imageView.startAnimation(animation);

animation.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
    }

    @Override
    public void onAnimationEnd(Animation animation) {
        imageView.setTranslationX(0);
        imageView.setTranslationY(0);
    }

    @Override
    public void onAnimationRepeat(Animation animation) {
    }
});

在这个示例代码中,我们首先创建了一个TranslateAnimation对象,并设置了动画的属性。然后,我们将动画应用于ImageView,并设置了fillAfter属性为true,这样可以保证动画结束后,视图的位置不会回到原来的位置。

接下来,我们使用setAnimationListener方法来设置动画的监听器,当动画结束时,我们使用setTranslationX和setTranslationY方法来重置视图的位置。这样就可以解决ImageView的TranslateAnimation留下痕迹的问题。

希望这个答案能够帮助到您。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android开发(43) 动画演示,会跑的小人,从屏幕左侧跑到右侧

    需求 想做一个动画,一个会跑的小人,从屏幕右侧跑道右侧,于是做了个尝试,上图: 实现步骤 要完成这样需要三步: 做一个 帧动画 (frame animation),由多张图片组成,组成小人连续跑动的样子...在onStart里启动动画 第一步,描述 “人物动作的变化”的动画 准备多个动作的图片,写个xml animation : <?xml version="1.0" encoding="utf-8"?...mAnimationDrawable.setOneShot(false); } 第二步,位移动画 代码: Animation translate = new TranslateAnimation...android.view.ViewTreeObserver; import android.view.animation.Animation; import android.view.animation.TranslateAnimation...private void startAnimation() { mAnimationDrawable.start(); Animation translate = new TranslateAnimation

    1.3K00

    帧动画和补间动画

    添加条目节点,设置资源android:drawable=”@drawable/xxx” 设置执行时间,android:duration=”100” 逐帧添加对应的图片 获取ImageView...对象,通过findViewById() 调用ImageView对象的setBackgroundResource()设置背景资源,参数:资源文件 调用ImageView对象的getBackground()...方法获取到AnimationDrawable对象 getBackground()方法是异步的在一个单独的线程里面执行的,因此,有时候,下面的代码是播放不了的,建议放在按钮点击事件里,或者屏幕触摸事件里...()方法,参数:RotateAnimation对象 平移 获取TranslateAnimation对象,new TranslateAnimation(),参数: 相对于父窗体Animation.RELATIVE_TO_PARENT...()方法,参数:TranslateAnimation对象 组合动画 获取AnimationSet对象,new出来 获取到上面的多个动画对象 调用AnimationSet对象的addAnimation()

    74520

    自定义View4-塔防小游戏第一篇:一个防御塔+多个野怪(简易版)*

    该篇是自定义View学习过程中做的简单下游戏,目前分了6篇,全是自定义的view实现的,如果有同学有好的优化方案,欢迎留言。...目标:通过自定义View实现一个防御塔攻击多个野怪 思路:之前我有过View的文章,里面的防御塔都是用的圆代替,野怪用的矩形代替。...我们分别创建防御塔、妖怪大道、野怪,开启动画不断刷新View,不断计算野怪和防御塔的距离,只要小于防御塔半径就对野怪攻击,攻击样式,我们可以动态创建imageview,使用移动动画即可(塔xy -> 野怪...towerList = new ArrayList();//防御塔数量 private List blameList = new ArrayList();//野怪数量 private ImageView...shotView; private ValueAnimator valueAnimator; private TranslateAnimation translateAnimation; private

    32830

    安卓开发_浅谈Android动画(一)

    实现方式   1、配置文件(/res/anim)--alpha,scale,translate,rotatae   2、JAVA代码实现--AlphaAnimation,ScaleAnimation,TranslateAnimation...,RotateAnimation 三、四种基本动画  1、AlphaAnimation(透明度动画)   (1)fromAlpha:动画起始时的透明度   (2)toAlpha:动画终止时的透明度   ...y坐标上的伸缩尺寸   (3)pivotX,pivotY分别为伸缩动画相对于x,y,坐标开始的位置  3、TranslateAnimation(位移动画)   (1)、fromXDelta,fromYDelta...分别是起始时X,Y的坐标   (2)、toXDelta,toYDelta分别是结束时X,Y的坐标  4、RotateAnimation(旋转动画)   (1)、fromDegrees 起始的角度   (...layout_width="wrap_content" 22 android:layout_height="wrap_content" 23 android:text="TranslateAnimation

    76470

    2014-11-3Android学习------利用ViewPager实现滑动的菜单--------GIF动画实现

    我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方 网上源码的名字叫:android gif模式和图片展现模式...在相应的activity中定义相关变量 private ViewPager viewPager;//页卡内容 private ImageView imageView;// 动画图片...初始化相关工作的处理 1.设置初始默认图片 private void InitImageView() { imageView = (ImageView) findViewById(R.id.cursor...} public void onPageSelected(int arg0) { Animation animation = new TranslateAnimation...} public void onPageSelected(int arg0) { Animation animation = new TranslateAnimation

    25520
    领券