【发布时间】:2017-07-01 03:56:16
【问题描述】:
我有一个约束布局,它有一个类似于射箭目标的图像视图。在触摸事件中,我试图在用户按下目标的位置放置另一个图像(子弹)。但是,我只能调整正确的图像的顶部对齐方式,但我根本无法水平调整视图。它总是最终调整到左边。做错了什么?坐标工作 100% 正常,我什至尝试对值进行硬编码,但没有运气。
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);
}
});
【问题讨论】:
-
查看更新的答案和解决方案。
标签: android android-constraintlayout