我想在我的标记信息中添加一些图像按钮。 虽然按钮已添加到视图中,但我不会点击它们。 当我尝试点击它时,点击整个视图。 我的代码如下。
MainActivity.java
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final RelativeLayout base;
base = (RelativeLayout) findViewById(R.id.base);
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();
try {
initilizeMap(); // Loading map
} catch (Exception e) {
Log.d("asdfadfadf", "asdfasdf");
}
googleMap.setMyLocationEnabled(true);
//googleMap.clear();
IconGenerator i = new IconGenerator(getBaseContext());
i.setStyle(IconGenerator.STYLE_BLUE);
Bitmap tt = i.makeIcon("asdf");
LatLng myLocation = new LatLng(22.899171, 89.500186);
Marker myLocMarker = googleMap.addMarker(new MarkerOptions()
.position(myLocation)
.icon(BitmapDescriptorFactory.fromBitmap(tt))
.title("sssss"));
googleMap.setInfoWindowAdapter(new InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker mk) {
// TODO Auto-generated method stub
return null;
}
@Override
public View getInfoContents(Marker arg0) {
// TODO Auto-generated method stub
ImageButton set,from,favor;
View view = getLayoutInflater().inflate(R.layout.marker_info,null);
set = (ImageButton) view.findViewById(R.id.imageButtonDestination);
from = (ImageButton) view.findViewById(R.id.imageButtonFrom);
favor = (ImageButton) view.findViewById(R.id.imageButtonFavourite);
set.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("sssssssssssssssss", "sssssssssssssssss");
}
});
return view;
}
});
}
/**
* function to load map. If map is not created it will create it for you
* */
private void initilizeMap() {
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap(); // check if map is created successfully or not
}
}
@Override
protected void onResume() {
super.onResume();
initilizeMap();
}
}
不知道该怎么做。 提前谢谢。
答案 0 :(得分:3)
您无法将标记侦听器添加到标记InfoWindow
,因为它不是真实视图。但是一个从你的布局渲染的Bitmap。
来自Google Docs
:https://developers.google.com/maps/documentation/android/marker#info_windows
注意:绘制的信息窗口不是实时视图。观点是 在它的时候呈现为图像(使用
View.draw(Canvas)
) 回。这意味着对视图的任何后续更改都不会 通过地图上的信息窗口反映出来。更新信息窗口 稍后(例如,在图像加载后),请致电showInfoWindow()
。 此外,信息窗口不会考虑任何交互性 典型的普通视图,如触摸或手势事件。不管你 可以在整个信息窗口上收听通用点击事件 在下面的部分中描述。
答案 1 :(得分:2)
将GoogleMap.OnInfoWindowClickListener()设置为地图,实现界面。你把标记传递给你,在那里叫你行动:
googleMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override public void onInfoWindowClick(Marker marker) {
//do your thing here
}
});
答案 2 :(得分:0)
我不太了解你需要什么,但根据理解是点击要添加到地图的图像(标记)。如果可以的话可以试试这个:
googleMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker arg0) {
//Your code when you do click
return false;
}
});
我希望能帮到你,对不起我的英语:(