Как определить, нажал ли пользователь в определенных областях моего ImageView?Как определить, подключен ли пользователь к растровому изображению?
У меня немного сложность, устанавливая границы координат (x, y), чтобы определить, когда нажимается конкретное растровое изображение.
Например, если позиция растрового изображения (75,75), скажем. т.е. верхний левый угол в этой точке, тогда, если пользователь коснется экрана в точке (X, Y), тогда простое условие:
У меня есть 4 позиция изображения, которую я рисую в холсте, это (75,75), (645,75), (1215,75) и (75,490).
Он не смог определить, что я нажимаю, он всегда дает мне сообщение «mImaget», а не другие.
@Override
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (x >= 75 && x < (75 + mImaget.getWidth())
&& y >= 75 && y < (75 + mImaget.getHeight())) {
Toast.makeText(getActivity(), "mImaget", Toast.LENGTH_SHORT).show();
Log.e("TOUCHED", "X: " + x + " Y: " + y + mImaget.getWidth() + "-" + mImaget.getHeight());
}
if (x >= 645 && x < (645 + mImageth.getWidth())
&& y >= 75 && y < (75 + mImageth.getHeight())) {
Toast.makeText(getActivity(), "mImageth", Toast.LENGTH_SHORT).show();
Log.e("TOUCHED", "X: " + x + " Y: " + y + mImageth.getWidth() + "-" + mImageth.getHeight());
}
if (x >= 1215 && x < (1215 + mImagef.getWidth())
&& y >= 75 && y < (75 + mImagef.getHeight())) {
Toast.makeText(getActivity(), "mImagef", Toast.LENGTH_SHORT).show();
Log.e("TOUCHED", "X: " + x + " Y: " + y + mImagef.getWidth() + "-" + mImagef.getHeight());
}
if (x >= 75 && x < (75 + mImageo.getWidth())
&& y >= 490 && y < (490 + mImageo.getHeight())) {
Toast.makeText(getActivity(), "mImageo", Toast.LENGTH_SHORT).show();
Log.e("TOUCHED", "X: " + x + " Y: " + y + mImageo.getWidth() + "-" + mImageo.getHeight());
}
return true;
}
return false;
}
Thankyou :)
Вы рисуете растровые изображения на холсте или устанавливаете в макетах? –
Да, я рисую его в холсте и ставил его в виде изображения: imageview.setImageBitmap (mBackground); –
Можете ли вы установить setOnClick или setOnTouchListener() на объект imageview? –