我想知道是否有一种方法可以通过使用SetMargins(或任何其他替代方案)来居中视图。我知道你可以使用重力但是如果我这样做,MotionEvent也适用它(所以当我拖动图像时,图像会从我触摸的地方转到新的“中心”。)
OnTouchListener dragt = new OnTouchListener() {
public boolean onTouch(View v, MotionEvent me) {
FrameLayout.LayoutParams par = (FrameLayout.LayoutParams) v.getLayoutParams();
FrameLayout.LayoutParams spawn = (FrameLayout.LayoutParams) v.getLayoutParams();
setMargins只允许我使用数字,它对所有设备都没有相同的结果。
spawn.setMargins(170, 350,0 ,0);
switch (v.getId()) {
case R.id.randomView:
}
switch(me.getAction()) {
case MotionEvent.ACTION_MOVE:
par.gravity = 0;
par.setMargins((int)me.getRawX() - (color.getWidth())/2, (int)me.getRawY() - (color.getHeight())/2, 0, 0);
color.setLayoutParams(par);
break;
case MotionEvent.ACTION_UP:
score++;
textScore.setText(String.valueOf(score));
color.setImageResource(mImageIds[rgenerator.nextInt(mImageIds.length)]);
设置位置(从上方引用)
color.setLayoutParams(spawn);
break;
}
return true;
}
};