我想要一个Button
(或任何View
这个问题)通过动画横向扩展/伸展,我希望它在另一个Button
的点击时发生。例如,在按下Button 1
之前,Button 2
不应该存在。但是当Button 1
被按下时,Button 2
应该慢慢地存在,其两边平滑地向左和向右扩展到一定的大小。
以下是我用来解释我想要实现的目标的照片
我已经看过几个教程,但是大多数都有从一个固定端到另一个固定端的滑动动画。我也尝试过缩放X&按钮的Y值从0到1,但它们不能给出平滑的动画效果(它们只是出现在那里)并且按钮不会向侧面展开/拉伸。
知道如何实现这一目标吗?
感谢您的时间!!
答案 0 :(得分:0)
平滑的动画效果,可以使用ObjectAnimtor。
答案 1 :(得分:0)
// scale down button2 at the start of an activity
btn2.setScaleX(0.1f);
// on the click of button 1 let the button2 scale
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btn2.animate()
.scaleX(4.0f)
.setDuration(1000)
.setInterpolator(new OvershootInterpolator(2.0f)) //Will give bounce effect to the scaling
.start();
}
});
答案 2 :(得分:0)
我认为您可以将this库用于Button 2
动画。
为了在点击另一个按钮时发生,只需从View.performClick()
onClick()方法调用Button 2
Button 1
。
答案 3 :(得分:0)
首先定义2个Animation和Button对象,然后为Button创建一个On Click侦听器,并在其中编写以下代码:
//here i define :Button btnoff
//Animation animation1
//set on click listener in oncreate
btnOff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animation1 = new ScaleAnimation(0,2,1,1,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animation1.setDuration(1200);
btnOff.startAnimation(animation1);}
});
您可以在此link中了解更多信息。