我正在使用TranslateAnimation将图像移动后居中,问题是如果动画启动时图像的一部分位于视图之外,它在动画期间将不可见:
我的代码:
TranslateAnimation trans = new TranslateAnimation(0, deltaX, 0,
deltaY);
trans.setDuration(250);
trans.setInterpolator(new AccelerateInterpolator(1.0f));
this.startAnimation(trans);
修改
首先将图像居中,然后将动画从原始位置绘制到中心,解决方法如下:
setVisibility(INVISIBLE);
//A void that centers the image inside the view
center(true, true);
TranslateAnimation trans = new TranslateAnimation(-deltaX, 0,-deltaY, 0);
trans.setDuration(250);
trans.setInterpolator(new AccelerateInterpolator(1.0f));
this.startAnimation(trans);
setVisibility(VISIBLE);
答案 0 :(得分:1)
根据我的理解,android不会绘制在屏幕上看不到的视图的一部分。将动画应用于视图时,只有像素在视图保留在旧位置时才会移位,这应该是问题,因为只有图像的可见像素才会移位。
我的想法是添加一个动画侦听器并覆盖animationStart方法并手动将视图添加到相关位置,或者您也可以在调用开始动画之前尝试此操作。 这可能有用。