因项目需要,在Android中实现了一个动画,当在Activity中点击特定按钮时,会在屏幕上添加一个ImageView,并按照指定的起点、终点,沿着特定的轨迹运动(例如直线)。
实现方法
实现思路是在Activity的DecorView中添加一个FrameLayout,然后在FrameLayout中添加ImageView,可通过Margin参数指定ImageView的起始位置。然后设置ImageView的动画,使其能运动到终点。当动画结束后,移除FrameLayout。
核心代码如下。项目GitHub链接 https://github.com/jzj1993/AnimationCrash
public static boolean startAnim(Activity activity, int fromX, int toX, int fromY, int toY) {
try {
final ImageView img = new ImageView(activity);
img.setImageResource(R.mipmap.ic_launcher);
final FrameLayout tempLayout = new FrameLayout(activity);
final FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(fromX, fromY, 0, 0);
tempLayout.addView(img, lp);
final ViewGroup container = (ViewGroup) activity.getWindow().getDecorView();