Android 自定义 MapView
我正在尝试创建 MapView
的扩展版本。
问题是当定义扩展版本的 MapView 时,mapview 不会平移。
我正在我的自定义地图视图中实现一个 onTouchListener
。
我还想知道是否有任何方法可以平移地图视图。
当 MapView 的库存版本与相同的源代码一起使用时,问题不会持续存在。
编辑
MyMapView来源:
public class MyMapView extends MapView{
public MyMapView(Context context, String apiKey) {
super(context, apiKey);
}
public MyMapView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyMapView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){
Log.v("MyMapView","Touched");
}
return false ;
}
}
来自MapActivity
的我的onCreate()
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.mapper);
mMapView=(MyMapView) findViewById(R.id.mapper_map);
mMapView.setSatellite(false);
}
I am trying to create an extended version of MapView
.
The problem is when extended version of MapView
is defined, mapview does not pan.
I am implementing an onTouchListener
Inside my custom map view.
I also want to know is there any methods from where I can pan the mapview.
The problem does not persist when stock version of MapView is used with same source code.
EDIT
MyMapView source:
public class MyMapView extends MapView{
public MyMapView(Context context, String apiKey) {
super(context, apiKey);
}
public MyMapView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyMapView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){
Log.v("MyMapView","Touched");
}
return false ;
}
}
my onCreate()
from MapActivity
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.mapper);
mMapView=(MyMapView) findViewById(R.id.mapper_map);
mMapView.setSatellite(false);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的 onTouchEvent() 应该返回 false,否则它将消耗该事件。
您还可以实例化 MapController 并使用它来更改视图。这是我正在开发的应用程序的代码片段:
Your onTouchEvent() should return false, otherwise it will consume the event.
You can also instantiate a MapController and use it to change the view. Here's a code snippet from an app I'm working on:
我投错了。
应该可以
解决这个问题。
不管怎样,谢谢。
I was casting it wrong.
should be
This solves the issue.
Thankx anyways.