可以通过以下步骤实现:
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<FrameLayout
android:id="@+id/mapContainer"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.google.android.gms.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
public class MapFragment extends Fragment implements OnMapReadyCallback {
private MapView mapView;
private GoogleMap googleMap;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_map, container, false);
mapView = rootView.findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(this);
return rootView;
}
@Override
public void onResume() {
super.onResume();
mapView.onResume();
}
@Override
public void onPause() {
super.onPause();
mapView.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}
@Override
public void onMapReady(GoogleMap map) {
googleMap = map;
// 在地图上添加标记
LatLng markerPosition = new LatLng(37.7749, -122.4194);
googleMap.addMarker(new MarkerOptions().position(markerPosition).title("San Francisco"));
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(markerPosition, 12));
}
}
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private MapFragmentPagerAdapter pagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = findViewById(R.id.viewPager);
pagerAdapter = new MapFragmentPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(pagerAdapter);
}
private class MapFragmentPagerAdapter extends FragmentPagerAdapter {
public MapFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return new MapFragment();
}
@Override
public int getCount() {
return 3; // 假设有3个页面
}
}
}
通过以上步骤,你就可以在Viewpager上添加带有标记的Google地图了。每个页面都会显示一个包含Google地图的Fragment,并在地图上添加一个标记。你可以根据需要自定义标记的位置和其他属性。
云+社区沙龙online [国产数据库]
云+社区沙龙online [国产数据库]
腾讯位置服务技术沙龙
企业创新在线学堂
腾讯数字政务云端系列直播
视频云直播活动
云+社区开发者大会(北京站)
Elastic 中国开发者大会
云+社区技术沙龙[第29期]
腾讯云GAME-TECH沙龙
领取专属 10元无门槛券
手把手带您无忧上云