platzieren Ich habe eine Constraint-Layout, das eine Bildansicht hat, die wie ein Bogenschießen Ziel ist. Bei Berührungsereignis versuche ich ein anderes Bild (eine Kugel) zu platzieren, wo der Benutzer auf das Ziel drückt. Allerdings kann ich nur die obere Ausrichtung des Bildes korrigieren, die korrekt ist, aber ich kann die Ansicht überhaupt nicht anpassen. Es endet immer nach links eingestellt. Was mache ich falsch? Die Koordinaten funktionieren 100% ok, ich habe sogar versucht, die Werte zu codieren, aber kein Glück.kann keine Sicht programmatisch mit ConstraintLayout
target.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Matrix inverse = new Matrix();
imageView.getImageMatrix().invert(inverse);
float[] touchPoint = new float[]{event.getX(), event.getY()};
inverse.mapPoints(touchPoint);
int x = (int) touchPoint[0];
int y = (int) touchPoint[1];
ConstraintSet set = new ConstraintSet();
ImageView view = new ImageView(this);
ConstraintLayout.LayoutParams vp =
new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
Bitmap bm = BitmapFactory.decodeResource(getResources(),
R.drawable.bullet);
view.setImageBitmap(bm);
layout.addView(view, 7, vp);
set.clone(layout);
set.connect(view.getId(), ConstraintSet.TOP,
target.getId(), ConstraintSet.TOP, (int) y - 60);
set.connect(view.getId(), ConstraintSet.LEFT, target.getId(), ConstraintSet.LEFT, (int) x);
set.applyTo(layout);
}
});
Siehe aktualisierte Antwort mit Lösung. – Cheticamp