Android - 创建像facebook这样的地图快照视图?

时间:2014-04-06 10:19:51

标签: android facebook google-maps maps snapshot

我必须在我的某个应用中显示特定位置的快照。我试图找到如何实现这一点但到目前为止没有运气。如果有人可以分享教程或建议如何执行此操作,那将会很棒。提前致谢。我还为你们添加了一个图像,以便了解我想要的是什么。

由于

enter image description here

1 个答案:

答案 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()以编程方式显示信息窗口。