2014-11-06 245 views
0

我有一个类似于Google环聊的聊天客户端。在底部,我有一个用于消息输入的编辑文本框,右边有发送按钮。我可以根据用户是否使用addTextChangedListener在消息框中有文本来为发送按钮设置动画。但发送按钮的初始位置应该是关闭的,因为用户还没有输入任何文本。一旦用户输入文本,发送按钮应该从右侧滑入。我需要帮助来弄清楚如何将发送按钮初始定位到屏幕外并将其动画到消息编辑文本旁边的屏幕上。Android动画开始位置

要动画发送按钮,我用财产动画...

send.animate()XBY(-send.getWidth()).setDuration(1000)。

谢谢大家的帮助!

回答

2

如果您打算使用ObjectAnimators,那么您可以简单地使用用于创建一个的静态方法。

Object target = send 
int from = -send.getWidth() 
int to = 0 
ObjectAnimator slider = ObjectAnimator.ofFloat(target, "x", from, to); 
slider.setDuration(1000) 
slider.start() 

初始位置可以手动通过简单地调用send.setX(-send.getWidth())直接,或最初设定的可见到View.Invisible,然后在AnimationListener设置View.Visible放置。

编辑:

如果您需要使用的大小,你可以发布一个Runnable的视图,它会立即运行作为视图到位。

send.post(new Runnable() { 
    @Override 
    public void run() { 
     int from = -send.getWidth() 
     int to = 0 
     ObjectAnimator slider = ObjectAnimator.ofFloat(send, "x", from, to); 
     slider.setDuration(1000) 
     slider.start() 
    } 
}); 

在这次火灾发生前查看我的闪光灯的可能性很小。要解决此问题,您可以将其初始可见性设置为View.INVISIBLE,然后在Runnable中将其设置为View.VISIBLE

+0

感谢您的帮助,但初始宽度始终为0。所以我不能使用SetX()方法。 – George 2014-11-06 19:54:59

+0

使用post方法。我会编辑。 – DeeV 2014-11-06 21:42:07

+0

send.post()适合我。非常感谢你的帮助! – George 2014-11-06 22:10:32