How to center text on android IconGenerator

I am developing an application using many markers placed on a map, and I am using a custom ClusterRenderer to display them. The problem is that I cannot draw the cluster size in the center of the custom marker icon, see the attached screenshot. I tried to add contentPadding to IconGenerator, but still no luck, due to a change in the number of displayed digits. Could you help me focus the text on the generated icon?

code:

IconGenerator clusterIconGenerator = new IconGenerator(context); clusterIcon = context.getResources().getDrawable(R.drawable.map_cluster); clusterIconGenerator.setBackground(clusterIcon); @Override protected void onBeforeClusterRendered(Cluster<MyType> cluster, MarkerOptions markerOptions) { Bitmap clusterIcon = clusterIconGenerator.makeIcon(String.valueOf(cluster.getSize())); markerOptions.icon(BitmapDescriptorFactory.fromBitmap(clusterIcon)); } 

enter image description here

+6
source share
1 answer

UPDATE

starting April 1, 2016, a prefix was added to the Library Resources so id = "text" was changed to "amu_text" .


As indicated in the library documentation:

setContentView public void setContentView (View contentView)
Sets the child view for the icon.
If the view contains a TextView with the identifier "text", operations such as setTextAppearance (Context, int) and makeIcon (String) will work on this TextView.

 @Override protected void onBeforeClusterRendered(Cluster<Dashboard_Marker> cluster, MarkerOptions markerOptions) { IconGenerator TextMarkerGen = new IconGenerator(context); Drawable marker; int ClusterSize = cluster.getSize(); marker = context.getResources().getDrawable(R.drawable.cluster_red); TextMarkerGen.setBackground(marker); LayoutInflater myInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View activityView = myInflater.inflate(R.layout.cluster_view, null, false); TextMarkerGen.setContentView(activityView); TextMarkerGen.makeIcon(String.valueOf(cluster.getSize())); BitmapDescriptor icon = BitmapDescriptorFactory.fromBitmap(TextMarkerGen.makeIcon()); markerOptions.icon(icon); } 

with layout_view layout like:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:layout_centerInParent="true" android:layout_centerVertical="true" android:weightSum="1"> <TextView android:layout_width="61dp" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Medium Text" android:textColor="#000000" android:id="@+id/text" android:layout_marginTop="13dp" android:gravity="center" /> </LinearLayout> 

note: the layout should contain a single text view with id = "text" so that the icon generator can accept it, manipulate all the positioning that you want in the layout.

+13
source

All Articles