アーチェリーターゲットのような画像ビューを持つ制約レイアウトがあります。タッチイベントでは、ユーザーがターゲットを押したときに別のイメージ(箇条書き)を配置しようとしています。しかし、私は正しい画像の上部のアライメントを調整することしかできませんが、ビューを水平に調整することはできません。常に左に調整されて終了します。何が間違っているの?座標は100%OKです、私は値をハードコーディングしようとしましたが運はありませんでした。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);
}
});
解決済みの解答を参照してください。 – Cheticamp