- Forum-Beiträge: 14
12.11.2018, 09:45:21 via Website
12.11.2018 09:45:21 via Website
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.
enter code here
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 im voraus.
gruß Joachim
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.