我的图片需要从用户点击的某个位置显示,然后移动到用户点击的其他位置。我认为我遇到的问题是如何将ImageView初始放置在给定的绝对X,Y(我的主视图根布局是默认的LinearLayout)。这就是我目前正在尝试的,动画运行但是不可见(在1000ms之后确实调用了结束函数)。
ImageView iv = new ImageView(mainActivity);
String imgname = "drawable/animImg";
int imgId = act.getResources().getIdentifier(imgname, "drawable", act.getPackageName());
iv.setImageDrawable(act.getResources().getDrawable(imgId));
/*didn't seem to help
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT);
((ViewGroup)mainActivity.findViewById(R.id.LinearLayout)).addView(iv,lp);
*/
int[] srcxy = new int[2];
src.getLocationInWindow(srcxy);
int[] destxy = new int[2];
dest.getLocationInWindow(destxy);
TranslateAnimation translateAnimation = new TranslateAnimation( Animation.ABSOLUTE, srcxy[0], Animation.ABSOLUTE, destxy[0], Animation.ABSOLUTE, srcxy[1], Animation.ABSOLUTE, destxy[1]);
translateAnimation.setDuration(1000);
translateAnimation.setInterpolator(new AccelerateInterpolator());
translateAnimation.setAnimationListener( new MyAnimationListenener( c, src, dest, this ) );
iv.setVisibility(View.VISIBLE);
iv.startAnimation(translateAnimation);
那么我有没有办法指定我想在我动画之前首先将ImageView定位在srcxy [0],srcxy [1]?或者我是否以正确的方式解决这个问题?
答案 0 :(得分:0)
如果ImageView包含在LinearLayout中,则无法将ImageView放置到x,y位置:如名称所示,LinearLayout用于以水平或垂直顺序顺序显示元素。我认为你必须使用FrameLayout。如果您查看this example,就可以找到符合目标的代码段。