以编程方式为小于 14 的 api 移动视图

Moving a View programmatically for api lower than 14

我正在使用 getX/getYsetX/setY 方法来动态更改某些 ImageView 的位置,以便让他们跟随手指的动作。问题是这些方法需要 api 14 级及以上。有没有其他方法可以使我的鳕鱼与较低的 api 级别兼容?

这是一些代码:

 for (int i = 0; i < num; i++) {
        rel.removeView(finger[i]);
        finger[i].setBackgroundResource(R.drawable.finger);
        try{
            finger[i].setX(e.getX(e.getPointerId(i))-100);
            finger[i].setY(e.getY(e.getPointerId(i))-100);
            rel.addView(finger[i]);
            }catch(Exception ex){
                rel.removeView(finger[i]);
            }
 }

finger[i] 是我的 ImageViewrel,我的 xml 的 RelativeLayoutnum 是当前触摸屏幕的手指数。

private ImageView[] finger = new ImageView[10];
private RelativeLayout rel;

对于较低的 API,您可以尝试设置 ImageViews:

的边距
RelativeLayout.LayoutParams params = finger[i].getLayoutParams();
params.leftMargin += i*100;
params.topMargin += i*100;
finger[i].setLayoutParams(params);