【发布时间】:2013-03-07 01:03:52
【问题描述】:
在动画运行后,我在 android 中创建的翻译动画出现问题,我设置的任何点击侦听器都保持在它们在导致异常问题之前所处的确切坐标中,我花了几天时间研究这个问题并还没有找到解决办法,我发现的一些建议包括将我的目标开发级别更改为 4.0 并更改 myLayout.layout(x,x,x,x),这些都不适合我,任何关于我如何做的建议更改此代码以使任何点击侦听器随布局移动?
upperView = (LinearLayout) findViewById(R.id.upperView);
hiddenMenu = (LinearLayout) findViewById(R.id.hiddenMenu);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Integer width = metrics.widthPixels;
upperView.getLayoutParams().width = width;
hiddenMenu.getLayoutParams().width = (int) (width * 0.75);
int theDistance = hiddenMenu.getLayoutParams().width;
//Run animation
TranslateAnimation anim = new TranslateAnimation(0, theDistance - 0 , 0, 0);
anim.setDuration(1000);
anim.setFillAfter( true );
upperView.startAnimation(anim);
【问题讨论】:
-
尝试找到一种方法将移动的 View 对象“真正”定位到动画应该结束的位置;即为动画结束实现一个监听器并改变它的重力或其他任何东西,并使翻译效果非持久化,这样不依赖于翻译的位置。
标签: java android android-animation translate-animation clicklistener