Re: [问题] Google map 资讯视窗置中

楼主: firewind (羽翼狼)   2017-02-19 23:10:07
※ 引述《firewind (羽翼狼)》之铭言:
: 各位前辈好
: 我是个新手开发android
: 想请问一下
: 我在开发googlemap时使用自订的资讯视窗
: 在点击marker时会自动跳出资讯视窗
: 但有时资讯视窗大小会超过Fragment 使有些资讯看不到
: 所以我参考了一些资料
: 想使用setOnMarkerListener
: 点击marker时让map.camera往下移动到可以看到全部资讯
: 可是最终呈献成果都是跳到指定位置后又自动将camera跑到marker位置
: 而且在fragment置中
: 想请问一下这个可以怎么改
: 非常感谢
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.40.39.84
※ 文章网址: https://www.ptt.cc/bbs/AndroidDev/M.1487304235.A.607.html
→ roy870075: http://stackoverflow.com/questions/15925319/how-to- 02/18 14:21
→ roy870075: disable-android-map-marker-click-auto-center 02/18 14:21
→ roy870075: 忘记缩网址了...只要在onMarkListener里面return true 02/18 14:23
→ roy870075: 就不会自动移到中间了
你好
非常感谢你的帮忙 找到了这个方法
不过使用时却有问题 自订的资讯视窗产生不出来了
想再请你帮忙一下 非常感谢
private GoogleMap.InfoWindowAdapter myInfoWindow= new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
V = getLayoutInflater().inflate(R.layout.map_item,null);
ImageView icon = (ImageView) V.findViewById(R.id.imageView);
TextView title = (TextView) V.findViewById(R.id.lbl_title);
TextView lbl_price = (TextView) V.findViewById(R.id.lbl_price);
TextView lbl_distance = (TextView) V.findViewById(R.id.lbl_distance);
if ("m1".equals(marker.getId())){
SharedPreferences sh = getSharedPreferences("Nearbuy",0);//用SharedPreferences测试成功
String name = sh.getString("userac","");
icon.setImageResource(R.drawable.logo);
title.setText(name);
// price.setText("");
// distance.setText("");
}else{
title.setText(name);
lbl_price.setText(price + "元");
lbl_distance.setText(distance + "公尺");
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
icon.setImageBitmap(bmp);
}
return V;
}
};
private GoogleMap.OnMarkerClickListener myMarkClickListener = new GoogleMap.OnMarkerClickListener() {
boolean donotmovecameratocentermarker = true;
public boolean onMarkerClick(Marker marker) {
map2.moveCamera(CameraUpdateFactory.scrollBy(0,-1000));
map2.setInfoWindowAdapter(myInfoWindow);
return donotmovecameratocentermarker;
}
};
private GoogleMap.OnInfoWindowClickListener myInfoWindowClickListener= new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
}
};
作者: roy870075 (Roy)   2017-02-21 12:11:00
看我上次给的网址的第一个解答,回传true后需要手动控制显示或隐藏InfoWindow,marker.showInfoWindow();和lastOpenned.hideInfoWindow();

Links booklink

Contact Us: admin [ a t ] ucptt.com