以编程方式为小于 14 的 api 移动视图
Moving a View programmatically for api lower than 14
我正在使用 getX
/getY
和 setX
/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]
是我的 ImageView
和 rel
,我的 xml 的 RelativeLayout
。
num
是当前触摸屏幕的手指数。
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);
我正在使用 getX
/getY
和 setX
/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]
是我的 ImageView
和 rel
,我的 xml 的 RelativeLayout
。
num
是当前触摸屏幕的手指数。
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);