我有一堆带有默认标记的自定义项目。
在我加载所有标记后,我正在使用服务来更新他们的Drawable照片。 新照片是50 X 50。
一切都很好,直到我点击一个标记,我的onTap警报框被激活。 然后我的标记恢复到标记新照片的原始(小)尺寸。
这是我的项目:
Bitmap bitmap = ((BitmapDrawable) picture).getBitmap();
picture = new BitmapDrawable(Bitmap.createScaledBitmap(bitmap, 50, 50, true));
picture.setBounds(0, 0, 50,50);
marker.getItem(0).setMarker(picture);
mapView.invalidate();
,这是我的onTap:
protected boolean onTap(int index) {
OverlayItem item = mapOverlays.get(index);
Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.map_menu);
dialog.setCanceledOnTouchOutside(true);
TextView userName = (TextView)dialog.findViewById(R.id.map_menu_name);
ImageView profilepicture = (ImageView)dialog.findViewById(R.id.map_menu_profile_picture);
if (item.getMarker(0) == null)
profilepicture.setImageDrawable(defaultMarker);
else
profilepicture.setImageDrawable(item.getMarker(0));
userName.setText(item.getTitle());
//dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
dialog.show();
return true;
}
还有一件事,当我使用地图的第一次加载时,dummie标记就在某个点上。 当它改变标记时,标记会移动一点......我不知道为什么......
编辑:通过以下答案找到解决方案:
我的新onTap方法:
@Override
protected boolean onTap(int index) {
OverlayItem item = mapOverlays.get(index);
Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.map_menu);
dialog.setCanceledOnTouchOutside(true);
TextView userName = (TextView)dialog.findViewById(R.id.map_menu_name);
ImageView profilePicture = (ImageView)dialog.findViewById(R.id.map_menu_profile_picture);
if (item.getMarker(0) == null)
profilePicture.setImageDrawable(defaultMarker);
else
{
Bitmap bitmap = ((BitmapDrawable) item.getMarker(0)).getBitmap();
Drawable profile = new BitmapDrawable(Bitmap.createScaledBitmap(bitmap, 50, 50, true));
profilePicture.setImageDrawable(profile);
}
userName.setText(item.getTitle());
//dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
dialog.show();
return true;
}
答案 0 :(得分:0)
我猜你需要在为ImageView设置Drawable时再次创建Drawable - 否则ImageView和标记共享drawable,当ImageView布局时,两者都会调整大小。