我必须在我的某个应用中显示特定位置的快照。我试图找到如何实现这一点但到目前为止没有运气。如果有人可以分享教程或建议如何执行此操作,那将会很棒。提前致谢。我还为你们添加了一个图像,以便了解我想要的是什么。
由于
答案 0 :(得分:0)
首先,假设您拥有特定的位置,那么您就可以拥有一个Maker。 这是添加Maker的演示代码:
private GoogleMap mMap;
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
Marker newMarker = mMap.addMarker(new MarkerOptions()
.position(location)
.title("Hello world"));
其次,您应该设置地图的自定义信息窗口。演示代码:
//write a custom InfoWindowAdapter
class MyInfoWindowAdapter implements InfoWindowAdapter{
private final View myContentsView;
MyInfoWindowAdapter(){
myContentsView = getLayoutInflater().inflate(R.layout.custom_info_contents, null);
}
@Override
public View getInfoContents(Marker marker) {
TextView tvTitle = ((TextView)myContentsView.findViewById(R.id.title));
tvTitle.setText(marker.getTitle());
TextView tvSnippet = ((TextView)myContentsView.findViewById(R.id.snippet));
tvSnippet.setText(marker.getSnippet());
return myContentsView;
}
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
return null;
}
}
//set the custom adapter to the map:
myMap.setInfoWindowAdapter(new MyInfoWindowAdapter());
如果你想设置制造商相对于你项目的对象(比如用户),你可以在文件中保留一个Hashmap(Maker,User)
。你可以先用你的数据初始化Hashmap,然后你可以设置infowindow的通过getInfoContents(Maker maker)
Hashmap.get(maker)
中的特定用户提供的信息。
这是自定义快照布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:adjustViewBounds="true"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12dp"
android:textStyle="bold"/>
<TextView
android:id="@+id/snippet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10dp"/>
</LinearLayout>
</LinearLayout>
点击制作者后,它会自动显示信息窗口,您也可以通过调用showInfoWindow()
以编程方式显示信息窗口。