Hallo,
ich muss von der Schule aus ein gewisses Programm in Android Studio schreiben, habe jedoch noch nicht viel Erfahrung damit sammeln können.
Nunja, das Ziel ist es ein Programm zu machen, wo ich 4 bewegbare Bilder habe, welche ich auf 4 verschiedene Plätze ziehen kann und dann testen lassen kann ob diese am richtigen Ort platziert sind.
Überlegt habe ich mir es so:
[Blockierte Grafik: https://www2.pic-upload.de/thumb/32618133/1.png]
Diese 4 Komponenten, sollen also auf diese 4 Flächen ziehbar sein und dort auf der Fläche dann eingerastet werden. Wenn alle 4 eingerastet sind, soll man auf Testen drücken können und es sollen dir deine Fehler mitgeteilt werden.
Ich habe es jetzt nach ein paar Youtube Tutorials geschafft, dass diese 4 Objekte bewegbar sind, jedoch ist noch nicht viel mehr möglich.
Es würde mich also rießig freuen, wenn ihr mir helfen könnt und mir einige Tipps geben könnt wie ich weiter machen kann. Meinen bisherigen Quellcode werde ich hier jetzt noch hinzufügen.
package com.software.marvinsonntag.komplex;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.view.View.OnTouchListener;
import android.view.MotionEvent;
import android.view.View;
public class MainActivity extends AppCompatActivity {
private ImageView img;
private ImageView img2;
private ImageView img3;
private ImageView img4;
private ViewGroup rootLayout;
private int _xDelta;
private int _yDelta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rootLayout = (ViewGroup) findViewById(R.id.view_root);
img = (ImageView) rootLayout.findViewById(R.id.Prozessor);
img2 = (ImageView) rootLayout.findViewById(R.id.Grafikkarte);
img3 = (ImageView) rootLayout.findViewById(R.id.Ram);
img4 = (ImageView) rootLayout.findViewById(R.id.Soundkarte);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 150);
img.setLayoutParams(layoutParams);
img.setOnTouchListener(new ChoiceTouchListener());
RelativeLayout.LayoutParams layoutParams2 = new RelativeLayout.LayoutParams(150, 150);
img2.setLayoutParams(layoutParams2);
img2.setOnTouchListener(new ChoiceTouchListener());
RelativeLayout.LayoutParams layoutParams3 = new RelativeLayout.LayoutParams(150, 150);
img3.setLayoutParams(layoutParams3);
img3.setOnTouchListener(new ChoiceTouchListener());
RelativeLayout.LayoutParams layoutParams4 = new RelativeLayout.LayoutParams(150, 150);
img4.setLayoutParams(layoutParams4);
img4.setOnTouchListener(new ChoiceTouchListener());
}
private final class ChoiceTouchListener implements OnTouchListener{
public boolean onTouch(View view, 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) view.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) view.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = Y - _yDelta;
layoutParams.rightMargin = -250;
layoutParams.bottomMargin = -250;
view.setLayoutParams(layoutParams);
break;
}
rootLayout.invalidate();
return true;
}
}
}
Alles anzeigen
Schonmal im voraus, vielen Dank für jegliche Hilfe.
Mfg. Marvin