Всем привет =)
Ситуация такая - скачал SherlockBar, и теперь пытаюсь во фрагмент засунуть карту, отображающую местоположение пользователя.
Проблема - есть ли способ сделать это для версии андроида 2.3? Нужно ли использовать какие-то сторонние классы? Можно ли как-то "запихнуть" во View (которое я передаю шерлоку для отображения фрагмента) эту карту?
SherlockFragment и Location
-
MAGISTR-Shuba
- Сообщения: 15
- Зарегистрирован: 04 июн 2013, 18:39
Re: SherlockFragment и Location
не вижу проблем, MapView можно запихнуть куда угодно
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
MAGISTR-Shuba
- Сообщения: 15
- Зарегистрирован: 04 июн 2013, 18:39
Re: SherlockFragment и Location
Не могли бы Вы привести пример? Сколько примеров не перепробовал (и стакОверФлоу, и сторонние статьи) - так и не получается даже карту отобразить (пермишины ставил, API-ключ указывал, в гугле карты включал, библиотеку гугл-сервиса подгружал)rezak90 писал(а):не вижу проблем, MapView можно запихнуть куда угодно
Re: SherlockFragment и Location
лучше покажи код как ты это всё дело подключаешь
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
MAGISTR-Shuba
- Сообщения: 15
- Зарегистрирован: 04 июн 2013, 18:39
Re: SherlockFragment и Location
Пока просто чтобы отобразить текущие координаты сделал так:rezak90 писал(а):лучше покажи код как ты это всё дело подключаешь
Код: Выделить всё
public class PartOfMap extends SherlockFragment implements LocationListener{
private View view=null;
GoogleMap googleMap;
private MapView mapView;
private static double lat=0.0 ,lon=0.0 ,alt=0.0 ,speed=0.0;
private boolean isGPSEnabled = false, isNetworkEnabled=false;
private Location location;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map, container, false);
LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
Toast.makeText(getActivity(), "isGPSEnabled =" + isGPSEnabled, 100).show();
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
Toast.makeText(getActivity(), "isNetworkEnabled =" + isNetworkEnabled, 100).show();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000,
1000, this);
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
lat = location.getLatitude();
lon = location.getLongitude();
Toast.makeText(getActivity(), "Coordinates"+ lat +""+ lon+"" + alt+"" + speed+"", 100).show();
}
SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview);
googleMap = fm.getMap();
googleMap.setMyLocationEnabled(true);
Marker marker = googleMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lon))
.title("San Francisco")
view=getActivity().findViewById(R.id.mapview);
return view;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
setUserVisibleHint(true);
}
@Override
public void onLocationChanged(Location location) {}Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.gms.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
Код: Выделить всё
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-library android:name="com.google.android.maps" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="ключ" />