Hallo,
Hallo, steh da grade bischen auf dem Schlauch.
Mein Vorhaben ist es über den OnTouchListener mehrere Objekte(imageviews) frei zu bewegen.
Mit einem Objekt klappt das . Meine Frage ist, wie kann ich das mit mehreren objekten umsetzen. Unten der Code mit einem Objekt.
--
Vielen Dank
lg.
Hallo, steh da grade bischen auf dem Schlauch.
Mein Vorhaben ist es über den OnTouchListener mehrere Objekte(imageviews) frei zu bewegen.
Mit einem Objekt klappt das . Meine Frage ist, wie kann ich das mit mehreren objekten umsetzen. Unten der Code mit einem Objekt.
--
Java:
public class MainActivity extends Activity implements View.OnTouchListener {
private ImageView mImageView01;
private ImageView mImageView02;
private ViewGroup mRrootLayout;
private int _xDelta;
private int _yDelta;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
mRrootLayout = (ViewGroup) findViewById(R.id.root);
mImageView01 = (ImageView) mRrootLayout.findViewById(R.id.imageView01);
//mImageView02 = (ImageView) mRrootLayout.findViewById(R.id.imageView02);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(250, 250); //Default 150/150
mImageView01.setLayoutParams(layoutParams);
mImageView01.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
_xDelta = X - lParams.leftMargin;
_yDelta = Y - lParams.topMargin;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = Y - _yDelta;
layoutParams.rightMargin = -250; //Default -250
layoutParams.bottomMargin = -250; // Default -250
v.setLayoutParams(layoutParams);
break;
}
mRrootLayout.invalidate();
return true;
}
}
Vielen Dank
lg.
Zuletzt bearbeitet von einem Moderator: