如何将视图添加到mapView上的特定点
当我的 MapView 上发生 onTouch 事件时,我希望我指定的布局绘制在用户触摸的位置上方。
下面是我开始的位置,我不知道如何实际将弹出视图放置在 x 和 y 上从事件中检索的值。你们有什么想法吗?
@Override
public boolean onTouchEvent(MotionEvent ev, MapView mapView) {
int X = (int)ev.getX();
int Y = (int)ev.getY();
ViewGroup parent=(ViewGroup)map.getParent();
View popup=getLayoutInflater().inflate(R.id.popup, parent, false);
((ViewGroup)map.getParent()).addView(popup);
an When an onTouch event occurs on my MapView, i want layout i have specified to be drawn above the where the user has touched
The below is where i have started, i do not know how to actually place the popup view on the x and y values retrieved from the event. Do you guys have any ideas?
@Override
public boolean onTouchEvent(MotionEvent ev, MapView mapView) {
int X = (int)ev.getX();
int Y = (int)ev.getY();
ViewGroup parent=(ViewGroup)map.getParent();
View popup=getLayoutInflater().inflate(R.id.popup, parent, false);
((ViewGroup)map.getParent()).addView(popup);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 x 和 y 的值设置
MapView.LayoutParams()
,然后使用 LayoutParams 调用 MapView 的addView
。You can set the
MapView.LayoutParams()
with the values of x and y and then call the MapView'saddView
with the LayoutParams.首先,您需要一个带有 X、Y 坐标的全局点。
现在,您应该重写 onDraw() 方法来绘制弹出视图。有很多解决方案可以做到这一点,我用 StaticLayout 尝试过这个:
At first, your need one global Point with your X,Y coordinates
Now, you should override the onDraw() method to draw you popup view. There are many solutions to do that, I've tried this one with StaticLayout: