我正在使用 animate()
方法使用以下代码将我的 TextView 发送到布局的最右下角:
move.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int xValue = container.getWidth() - myView.getWidth();
int yValue = container.getHeight() - myView.getHeight();
myView.animate().x(xValue).y(yValue);
}
});
这确实有效,但我有点迷失在将元素恢复到其原始位置的过程中。我确实尝试了以下方法,但没有用:
public class MainActivity extends Activity {
Button fadeIn, fadeOut, move, moveBack;
TextView myView;
LinearLayout container;
float originalX , originalY;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fadeIn = (Button)findViewById(R.id.fadeIn);
fadeOut = (Button)findViewById(R.id.fadeOut);
move = (Button)findViewById(R.id.move);
moveBack = (Button)findViewById(R.id.moveBack);
myView = (TextView)findViewById(R.id.myView);
originalX = myView.getX();
originalY = myView.getY();
Log.i("X and Y", ""+originalX+" "+originalY);
container = (LinearLayout) findViewById(R.id.container);
fadeIn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
myView.animate().alpha(1);
}
});
fadeOut.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
myView.animate().alpha(0);
}
});
move.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int xValue = container.getWidth() - myView.getWidth();
int yValue = container.getHeight() - myView.getHeight();
myView.animate().x(xValue).y(yValue);
}
});
moveBack.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
myView.animate().x(originalX).y(originalY);;
}
});
}
}
下面给出了 X 和 Y
上的 0,0
位置。请帮忙。
最佳答案
你可以试试 TranslateAnimations .类似的东西。-
TranslateAnimation anim = new TranslateAnimation(originalX, xValue, originalY, yValue);
anim.setFillAfter(true);
anim.setFillEnabled(true);
anim.setDuration(ANIM_DURATION);
myView.startAnimation(anim);
并还原值以恢复原始位置。-
TranslateAnimation anim = new TranslateAnimation(xValue, originalX, yValue, originalY);
anim.setFillAfter(true);
anim.setFillEnabled(true);
anim.setDuration(ANIM_DURATION);
myView.startAnimation(anim);
关于android - 动画 child 回到原来的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19048834/