2014-01-15 5 views
0

Я размещаю значок на своем экране в своем приложении для Android при первом касании. Я смог реализовать то же самое, но мой вопрос касается того, как может быть положение этого изображения.Как разместить значок изображения в точном месте касания в android

Когда я использовать фактор 20 и использовать следующий код в стороне моего onTouch события,

Bitmap img = BitmapFactory.decodeResource(Res, R.drawable.myPoint); 
canvas.drawBitmap(img, vec.get(i).x - 20, vec.get(i).y - 20, null); 

Изображение, кажется, накладывается на точку моего прикосновения (я не уверен, координаты). И выход выглядит так enter image description here

Когда я не использую любой фактор и использовать следующий код

 Bitmap img = BitmapFactory.decodeResource(Res, R.drawable.myPoint); 
     canvas.drawBitmap(img, vec.get(i).x , vec.get(i).y , null); 

Изображение, кажется, расположен на небольшом расстоянии от точки касания, как показано здесь. enter image description here

Моя цель состоит в том, чтобы иметь заостренный кончик изображения (справа) правильно указать точные координаты, где прикосновение произошло, так что я могу стрелять из пути оттуда к следующей позиции щелчка, как это , enter image description here

Будет ли это требует измерения размеров т.е. ширины и высоты изображения, чтобы поместить изображение в требуемом location.How делает андроид место таких больших изображений по умолчанию относительно нормального малого точки касания. Учитывается ли центр тяжести изображения?

ответ

1

Аргументы x и y drawBitmap относятся к верхнему левому углу растрового изображения.

Вот бы правильное (х, у) координаты, если нет границы вокруг изображения, которое вы дали (предполагая, что оно симметрично вдоль оси х):

x = touchX - bitmapWidth; 
y = touchY - bitmapHeight/2; 
0

Измерьте Bitmap вы находитесь затем добавьте эти значения в координаты рисования.

canvas.drawBitmap(img, vec.get(i).x + (img.x/2), vec.get(i).y + img.y, null) 

Этот код должен дать вам представление о том, что делать.

Смежные вопросы