我想知道是否有人可以帮我处理我的代码。羽绒服是代码 我在互联网上找到了,并调整了一下。因此,对于按钮设置 onClickListener 方法,该方法包括按下按钮时使用的两种方法。所以代码可以工作,但不是我想象的方式。当按下按钮时,它会消失并从左侧流入屏幕 AccelerateInterpolator。我希望它能做什么以及我应用程序中的其他按钮是。当按下按钮时,它将来自它的当前位置(让我们说 - 屏幕的中心)它会流出屏幕然后来回到它的位置。
我不知道如何正确设置参数或更改方法。 谢谢你的帮助
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
findViewById(R.id.button1);
TranslateAnimation translation;
translation = new TranslateAnimation(getDisplayHeight(), 0f, 0f, 0f);
translation.setStartOffset(500);
translation.setDuration(2000);
translation.setFillAfter(true);
translation.setInterpolator(new AccelerateInterpolator());
findViewById(R.id.button1).startAnimation(translation);
button2.setVisibility(View.VISIBLE);
}
private int getDisplayHeight() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
return metrics.widthPixels;
}
});
答案 0 :(得分:0)
所以,1你没有正确使用translateanimation。
TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)
因此,从当前位置移动到新位置将是:
TranslateAnimation(0, 'change in X value you want', 0, 'change in Y value you want')
第二个让它回来你可以将重复计数设置为1并将模式设置为反转,(另一种方法是创建另一个translateAnimation并将两者组合成一个集合,我发现下面更容易):< / p>
transTo.setRepeatCount(1);
transTo.setRepeatMode(Animation.REVERSE);
第三,也许你已经知道,但这是一个视图动画,所以按钮只是在视觉上改变它的绘制位置,而不是它可以点击的位置。如果这对您的目的来说很好,那么请继续查看动画。要移动可点击区域,我建议使用属性动画。我在这里写了一篇关于他们的博客HERE以及关于观看动画HERE
的博客