Я использую 32x32 и 64x64 (сетчатка) для того же значка. Когда я попытался использовать SKAnnotationView для отображения моего значка, он загружается в двойном размере (128x128). После очистки аннотаций и добавления снова размер возвращается к нормальному (64x64).Skmap пользовательская аннотация первая загрузка удваивается в размере
Вы можете найти код ниже, я последовал за образец кода проекта:
SKAnnotation annotation = new SKAnnotation();
annotation.setUniqueID(-1);
annotation.setLocation(new SKCoordinate(longitude.doubleValue(), latitude.doubleValue()));
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
SKAnnotationView annotationView = new SKAnnotationView();
if (metrics.densityDpi < DisplayMetrics.DENSITY_HIGH) {
annotationView.setDrawableResourceId(R.drawable.ic_annotation);
annotation.setOffset(new SKScreenPoint(16, 16));
annotationView.setWidth(32);
annotationView.setHeight(32);
annotation.setImageSize(32);
} else {
annotationView.setDrawableResourceId(R.drawable.ic_annotation_retina);
annotation.setOffset(new SKScreenPoint(32, 32));
annotationView.setWidth(64);
annotationView.setHeight(64);
annotation.setImageSize(64);
}
annotation.setAnnotationView(annotationView);
mapView.addAnnotation(annotation, SKAnimationSettings.ANIMATION_NONE);
Я могу обходным путем, удалив аннотацию и добавив еще раз: \t 'mapView.addAnnotation (аннотация , SKAnimationSettings.ANIMATION_NONE); . \t нового обработчика (Looper.getMainLooper()) postDelayed (новый Runnable() { \t \t @Override \t \t общественный недействительный запуск() { \t \t \t mapView.deleteAnnotation (-1); \t \t \t MapView .addAnnotation (аннотация, SKAnimationSettings.ANIMATION_NONE); \t \t} \t}, 500); ' –
Мы ищем в этот вопрос (раскрытие: я работаю на Skobbler) – SylviA
Может ли вы Ni cholas добавить демонстрационный проект, иллюстрирующий эту проблему? – SylviA