Повышение производительности:
Раньше я сохранял ВСЕ изображения в папке drawable
, возможно, это было причиной того, что карта сначала загружалась медленно, когда рисовал маркеры на экране, изображение могло не соответствовать размеру экрана. Теперь я сохранил изображения в drawable-mdpi
, drawable-hdpi
и т. д., приложение работает более плавно, чем раньше. Надеюсь, поможет
Исходный вопрос:
Я создал карту во фрагменте, исходный код можно найти ниже.
Фрагмент карты тормозит при первой загрузке. Если я перехожу к любому другому фрагменту и снова щелкаю фрагмент карты, он загружается быстро и больше не слаг.
Кто-нибудь может сказать мне, что здесь происходит? Спасибо!
фрагмент_карты.xml, идентификатор map
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.SupportMapFragment" />
MyMapFragment.java (содержит onCreateView
и setUpMapIfNeeded
)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
try {
rootView = inflater.inflate(R.layout.fragment_map, container, false);
} catch (InflateException e) {
/* map is already there, just return view as it is */
Log.e(TAG, "inflateException");
}
setUpMapIfNeeded();
return rootView;
}
public void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the fragment_map.
if (myMap == null) {
// Try to obtain the fragment_map from the SupportMapFragment.
myMap = ((SupportMapFragment) MainActivity.fragmentManager.findFragmentById(R.id.map)).getMap();
// Check if we were successful in obtaining the fragment_map.
if (myMap != null) {
setUpMap();
}
}
}