Форум программистов, компьютерный форум CyberForum.ru

google map v2 outOfMemory - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Как достучаться до системных настроек? http://www.cyberforum.ru/android-dev/thread939331.html
Тяжело ли это? В Windows большинство настроек лежит в реестре. Где лежат нстройки в андроиде? Хочу отключить анимацию окон. Полностью отключить. В справочниках вроде ...
Android Access DB ADK Здравствуйте, подскажите кто знает: возможно ли подключить базу данных MS Access 2003 *.mdb к программе под Android (Eclipse Android Development kit). Если да, то как именно? http://www.cyberforum.ru/android-dev/thread939116.html
Трудности с установкой Android SDK Android
Приветствую, Форумчане.Возникла проблема при установке SDK.Вообщем при создании нового проекта возникает вот такая вот ошибка: Errors occurred during the build. Errors running builder 'Android Resource Manager' on project 'TEst'. java.lang.NullPointerException Собс-но,как решить эту проблему? Еще один вопрос.Я не могу создать просто андроид проект,могу создать только андроид тест...
Android Пауза в запросах
Добрый день Делаю клиент-серверное приложение. Есть такая ситуация: клиент (на Android) должен опрашивать сервер (сейчас на Windows, в будущем будет на Arduino, хотя это и не принципиально) по UDP протоколу. Так вот, когда клиент отправляет один запрос - все отлично, но как только я посылаю запросы в цикле, то получается билиберда: то сервер получает не корректные данные, то клиент...
Android Парсинг M3U плейлистов http://www.cyberforum.ru/android-dev/thread938939.html
Подскажите пожалуйста, как можно реализовать парсинг m3u плейлистов? мне нужно сделать с него список в ListView
Android Ini file public class IniReader { private Properties iniFile; private String configurationFile = "config.ini"; public IniReader(Context context) { iniFile = new Properties(); try { iniFile.load(new FileInputStream(this.configurationFile)); Log.v("ini file", "YYYYYYYYYYYEEEEEEEEEP!!!!!"); } catch (IOException e) { подробнее

Показать сообщение отдельно
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
18.08.2013, 18:29  [ТС]     google map v2 outOfMemory
Цитата Сообщение от Wenceslaus Посмотреть сообщение
если поддерживаете только с API 11.
поддержка идет с api 10

Цитата Сообщение от Wenceslaus Посмотреть сообщение
Под кодом формирования карты я имел ввиду все манипуляции с объектом GoogleMap и формированием/добавлением маркеров.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
 
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
 
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
 
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.AsyncTask;
import android.support.v4.app.FragmentManager;
import android.widget.EditText;
import android.widget.LinearLayout;
 
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
 
public class FragmentMap extends Fragment implements OnInfoWindowClickListener,
        LocationListener {
 
    public ViewPager mViewPager;
    private GoogleMap myMap;
    private LocationManager locationManager;
    private String provider;
 
    LinearLayout layout;
 
    // подключаем базу
    DBHelperSqLite dbHelperSqLite;
    private static final String TABLE_POSITION = "positionDB";
    private static final String KEY_ID = "id";
    private static final String KEY_TITLE = "title";
    private static final String KEY_SHORT_DESC = "short_desc";
    private static final String KEY_LAT = "lat";
    private static final String KEY_LON = "lon";
    private static final String KEY_RANGE = "range";
 
    private static final String PROXIMITY_INTENT_ACTION = new String(
            "com.examplemy.app.action.PROXIMITY_ALERT");
 
    private IntentFilter mIntentFilter;
    private ArrayList<LatLonPair> mPositions;
    private static final long PROX_ALERT_EXPIRATION = -1;
    private ArrayList<String> name;
    private ArrayList<Float> range;
    private static final long MINIMUM_DISTANCECHANGE_FOR_UPDATE = 1; // in
                                                                        // Meters
    private static final long MINIMUM_TIME_BETWEEN_UPDATE = 800; // in
                                                                    // Milliseconds
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        View myView = inflater.inflate(R.layout.fragment_map, container, false);
 
        mViewPager = ((MapFragmentActivity) getActivity()).getpager();
        layout = (LinearLayout) myView.findViewById(R.id.ll);
 
        try {
            // location
            FragmentManager myFragmentManager = getFragmentManager();
            SupportMapFragment mySupportMapFragment = (SupportMapFragment) myFragmentManager
                    .findFragmentById(R.id.map);
            myMap = mySupportMapFragment.getMap();
 
            if (checkPlayServices() == true) {
                System.out
                        .println("checkPlayServices() " + checkPlayServices());
                myMap.setMyLocationEnabled(true);
            } else {
                System.out.println("PlayServices Google не установлены");
            }
 
            LocationManager service = (LocationManager) getActivity()
                    .getSystemService(Context.LOCATION_SERVICE);
            boolean enabledGPS = service
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);
 
            if (!enabledGPS) {
                Toast.makeText(getActivity(), "Нет сигнала GPS",
                        Toast.LENGTH_LONG).show();
            }
 
            locationManager = (LocationManager) getActivity().getSystemService(
                    Context.LOCATION_SERVICE);
 
            Criteria criteria = new Criteria();
            provider = locationManager.getBestProvider(criteria, false);
            Location location = locationManager.getLastKnownLocation(provider);
 
            // Initialize the location fields
            if (location != null) {
                onLocationChanged(location);
            } else {
                // do something
            }
 
            myMap.setOnInfoWindowClickListener(this);
 
            // Development Alert
            mIntentFilter = new IntentFilter(PROXIMITY_INTENT_ACTION);
 
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("на карте произошла ошибка");
        }
 
        return myView;
    }
 
    // проверка на PlayServices Google
    private boolean checkPlayServices() {
        int status = GooglePlayServicesUtil
                .isGooglePlayServicesAvailable(getActivity());
        if (status == ConnectionResult.SUCCESS) {
            return true;
        }
        return false;
    }
 
    // слушатель клика по подробнастям над маркером
    @Override
    public void onInfoWindowClick(Marker marker) {
 
        String title = marker.getTitle();
        System.out.println("title - " + title);
        Fragment2 fragment2 = (Fragment2) ((MapFragmentActivity) getActivity())
                .getFragment2();
        fragment2.getMyIndex(title);
 
        
        layout.setVisibility(View.GONE);
        mViewPager.setCurrentItem(1);
 
    }
 
    /* Request updates at startup */
    @Override
    public void onResume() {
        super.onResume();
 
        locationManager.requestLocationUpdates(provider,
                MINIMUM_TIME_BETWEEN_UPDATE, MINIMUM_DISTANCECHANGE_FOR_UPDATE,
                new MyLocationListener());
 
        try {
            getActivity().registerReceiver(new ProximityAlert(), mIntentFilter);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }
 
    /* Remove the locationlistener updates when Activity is paused */
    @Override
    public void onPause() {
        super.onPause();
        locationManager.removeUpdates(this);
    }
 
    @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
 
        double lat = location.getLatitude();
        double lng = location.getLongitude();
 
        LatLng coordinate = new LatLng(lat, lng);
 
        myMap.animateCamera(CameraUpdateFactory.newLatLng(coordinate));
        CameraUpdate center = CameraUpdateFactory
                .newLatLng(new LatLng(lat, lng));
        CameraUpdate zoom = CameraUpdateFactory.zoomTo(11);
        myMap.moveCamera(center);
        myMap.animateCamera(zoom);
    }
 
    @Override
    public void onProviderDisabled(String provider) {
 
    }
 
    @Override
    public void onProviderEnabled(String provider) {
 
    }
 
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub
 
    }
 
    // метод который необходим для того чтобы выгружать из базы инфу и ставить
    // маркеры
    public void insertMarker(){
    try{
    
    dbHelperSqLite = new DBHelperSqLite(getActivity());
    
/
    SQLiteDatabase db = dbHelperSqLite.getReadableDatabase();
 
    //Development Alert
    mPositions = new ArrayList<LatLonPair>();
    name = new ArrayList<String>();
    range = new ArrayList<Float>();
    
    Cursor valuesCursor = db.query(TABLE_POSITION, new String[] { KEY_ID,
            KEY_TITLE, KEY_SHORT_DESC , KEY_LAT,
            KEY_LON, KEY_RANGE }, KEY_ID, null, null, null, null);
 
    valuesCursor.moveToFirst();
    if (!valuesCursor.isAfterLast()) {
        do {
            String nameTitle = valuesCursor.getString(1);
            double nameLat = valuesCursor.getDouble(3); //
            double nameLon = valuesCursor.getDouble(4);
            float rangeValue = valuesCursor.getFloat(5);
            
            //ставит маркеры
             final LatLng COORDINATES = new LatLng(nameLat, nameLon);
                myMap.addMarker(new MarkerOptions()
                                        .position(COORDINATES)
                                        .title(nameTitle)
//                                      .snippet(nameShort_descH)
                                        .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_map)));
            
                //Development Alert
            mPositions.add(new LatLonPair(nameLat, nameLon));
            name.add(nameTitle);
            range.add(rangeValue);
 
        } while (valuesCursor.moveToNext());
    }
    valuesCursor.close();
    dbHelperSqLite.close();
    db.close();
    
    //Development Alert
       registerIntents(name, range);
       
    }catch (Exception e) {
        e.printStackTrace();
        System.out.println("попали в try catch");
    }
    
}
 
    // Development Alert
    private void registerIntents(ArrayList<String> name,
            ArrayList<Float> range) {
        for (int i = 0; i < mPositions.size(); i++) {
            LatLonPair latLon = mPositions.get(i);
 
            String valueName = name.get(i);
            float rangeRadius = range.get(i);
 
            setProximityAlert(latLon.getLatitude(), latLon.getLongitude(),
                    i + 1, i, valueName, rangeRadius);
        }
    }
 
    private void setProximityAlert(double lat, double lon, final long eventID,
            int requestCode, String valueName, float radius) {
 
        System.out.println("valueName " + valueName + " radius "
                + radius);
        long expiration = PROX_ALERT_EXPIRATION;
 
        LocationManager locManager = (LocationManager) getActivity()
                .getSystemService(Context.LOCATION_SERVICE);
 
        Intent intent = new Intent(PROXIMITY_INTENT_ACTION);
        intent.putExtra(ProximityAlert.EVENT_ID_INTENT_EXTRA, eventID);
        intent.putExtra(ProximityAlert.NAME_INTENT_EXTRA,
                valueName);
 
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity()
                .getApplicationContext(), requestCode, intent,
                PendingIntent.FLAG_CANCEL_CURRENT);
 
        locManager.addProximityAlert(lat, lon, radius, expiration,
                pendingIntent);
    }
 
    public class MyLocationListener implements LocationListener {
        public void onLocationChanged(Location location) {
 
        }
 
        public void onStatusChanged(String s, int i, Bundle b) {
        }
 
        public void onProviderDisabled(String s) {
        }
 
        public void onProviderEnabled(String s) {
        }
    }
 
}
Цитата Сообщение от Wenceslaus Посмотреть сообщение
всего 5? Очень интересно, и каковы их параметры (вес, разрешение)?
есть 3 маркера под разные разрешения:
hdpi - 6,30 кб 82x98 глубина цвета 32
xhdpi - 9,57 кб 125x148 глубина цвета 32
xxhdpi - 15,6 кб 189x224 глубина цвета 32
 
Текущее время: 15:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru