Перемещение должно происходить в RelativeLayout. вот фрагмент кода как я ето реализовал но проблема в том что перемещение происходит только в верхнем левом углу.
Код: Выделить всё
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageFly:
Log.d(TAG,"opridiljaem ID fly");
Log.d(TAG,"New parametrs fly ");
RelativeLayout.LayoutParams rell = new RelativeLayout.LayoutParams(50, 50);
switch (random.nextInt(4)) {
case 0: // Перемещение в левом верхнем углу
rell.leftMargin=random.nextInt(150)+1;
rell.topMargin =random.nextInt(300)+1;
Log.d(TAG,"Left Top corner"+rell.leftMargin+"---"+rell.topMargin);
imageFly.setLayoutParams(rell);
break;
case 1: // Перемещение в правом верхнем углу
rell.rightMargin = random.nextInt(150)+1;
rell.topMargin = random.nextInt(300)+1;
Log.d(TAG,"Right Top corner"+rell.rightMargin+"---"+rell.topMargin);
imageFly.setLayoutParams(rell);
break;
case 2: // Перемещение в левом нижнем
rell.leftMargin = random.nextInt(150)+1;
rell.bottomMargin = random.nextInt(300)+1;
Log.d(TAG,"Left down corner"+rell.leftMargin+"---"+rell.bottomMargin);
imageFly.setLayoutParams(rell);
break;
case 3: // Перемещение в правом нижнем
rell.rightMargin = random.nextInt(150)+1;
rell.bottomMargin = random.nextInt(300)+1;
Log.d(TAG,"Right down corner"+rell.rightMargin+"---"+rell.bottomMargin);
imageFly.setLayoutParams(rell);
break;
}
break;