以编程方式使用SetMargins的Android中心视图?

时间:2012-03-19 04:26:12

标签: java android margin

  

可能重复:
  How to set margin of ImageView using code, not xml

我想知道是否有一种方法可以通过使用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;
    }
};

0 个答案:

没有答案