ورود

View Full Version : عدم نمایش کامل یک متن در marker گوگل مپ



aliblk10
پنج شنبه 31 تیر 1395, 11:35 صبح
سلام دوستان
من یه برنامه ای دارم که مشخصات یه نقطه رو با marker «مایش میده ولی در marker من بیش از چند حرف رو نمایش نمیده و بقیه رو ... میذاره
چطور میتونم کاری کنم که بصورت کامل marker title من رو نمایش بده؟

اینمک کد نمایش مارکر:
Marker marker = googleMap.addMarker (new MarkerOptions()
.position(new LatLng(latitude, longitude))
.title("مشخصات دستگاه")
.snippet("نام خودرو: "+ selectedCarItem+"\n"+"زمان گزارش: "+ nTime+"\n"+"آدرس: "+Address+"\n"+"سرعت: "+nSpeed+"\n"+"اخطار: "+nAlarmState+"\n"+"وضعیت :"+nTEState )
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.carico)));
marker.showInfoWindow();



در ضمن تو این پست یه توضیحی داده شده ولی من زیاد متوجه نشدم چیکار کرد .

(http://stackoverflow.com/questions/23822004/map-marker-title-does-not-show-full-text-on-google-map-v2?rq=1)

hasan_esfahan
شنبه 02 مرداد 1395, 21:24 عصر
دقیقا جوابتون توی همون لینک هست چون من از همین استفاده کردم و حتی عکس و .. هم بهش اضافه کردم





public class MapInfoWindow implements InfoWindowAdapter {


ImageView Img;
TextView tv;
TextView tvTop;
LinearLayout linearLayout;
LinearLayout llTop;
Context context;

public MapInfoWindow(Context context) {
this.context =context;
tv = new TextView(context);
tvTop = new TextView(context);
Img = new ImageView(context);



LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.M ATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
linearLayout = new LinearLayout(context);
linearLayout.setLayoutParams(ll);
linearLayout.setOrientation(LinearLayout.VERTICAL) ;
linearLayout.setBackgroundColor(Color.rgb(255, 255, 255));



LinearLayout.LayoutParams llTopParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.M ATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
llTop = new LinearLayout(context);
llTop.setLayoutParams(llTopParams);
llTop.setOrientation(LinearLayout.HORIZONTAL);
llTop.setGravity(Gravity.RIGHT);

LinearLayout.LayoutParams tvToplp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.W RAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT);
tvTop.setLayoutParams(tvToplp);
tvTop.setGravity(Gravity.CENTER);


LinearLayout.LayoutParams limg = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.W RAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT);
Img.setLayoutParams(limg);


llTop.addView(tvTop);
llTop.addView(Img);


LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.M ATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
tv.setLayoutParams(lp);
tv.setGravity(Gravity.CENTER);






linearLayout.addView(llTop);
linearLayout.addView(tv);

}


@Override
public View getInfoWindow(Marker marker) {

if(!isSpacificateTitle(marker.getTitle()))
{
tv.setText(marker.getTitle());
tv.setBackgroundColor(Color.rgb(255, 255, 255));
llTop.setVisibility(View.GONE);
}
else
{
llTop.setVisibility(View.VISIBLE);
String[] arr= marker.getTitle().split(",");
Img.setImageBitmap(new MapInfoImage().getBitmap(context, Integer.parseInt(arr[1])));
tv.setBackgroundColor(Color.rgb(255, 255, 255));
tv.setText(arr[0]+"\n"+arr[3]);
tvTop.setText("["+arr[2]+"]");
}

return linearLayout;
}


@Override
public View getInfoContents(Marker marker) {
return null;
}


private boolean isSpacificateTitle(String text) {
if(text.split(",").length > 1)
return true;
return false;
}
}






بعد هم توی فرگمت یا اکتیویتی ستش میکنی






mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id. map))
.getMap();
mMap.setInfoWindowAdapter(new MapInfoWindow(this));