Am trying to customize the view of Snippet & Title in MapView using CommonsWare's Example
However am not able to Customize the Typeface of the snippet.
Any luck?
Asked
Active
Viewed 3,361 times
2

Community
- 1
- 1

VenomVendor
- 15,064
- 13
- 65
- 96
1 Answers
4
If you extended the example from CommonsWare, you should have a PopupAdapter which is responsible for displaying your InfoWindow.
I've extended that PopupAdapter to load a Typeface from my assets folder, and set it as the title and snippet views typeface
class PopupAdapter implements InfoWindowAdapter {
LayoutInflater inflater = null;
// Context is most likely the map hosting activity.
// We need this so we get access to the Asset Manager
Context context = null;
PopupAdapter(LayoutInflater inflater, Context context) {
this.inflater = inflater;
this.context = context;
}
@Override
public View getInfoWindow(Marker marker) {
return (null);
}
@Override
public View getInfoContents(Marker marker) {
View popup = inflater.inflate(R.layout.popup, null);
TextView tv = (TextView) popup.findViewById(R.id.title);
tv.setText(marker.getTitle());
// We load a typeface by using the static createFromAssets method
// and provide the asset manager
// and a path to the file within the assets folder
Typeface tf = Typeface.createFromAsset(context.getAssets(),
"GoodDog.otf");
// then set the TextViews typeface
tv.setTypeface(tf);
tv = (TextView) popup.findViewById(R.id.snippet);
tv.setText(marker.getSnippet());
tv.setTypeface(tf);
return (popup);
}
}

Daniel H.
- 243
- 1
- 3
- 10
-
I have down voted for following reasons, [Android doesn't support otf](http://stackoverflow.com/a/1430320/1008278). `getAssets()` is not recognized in `InfoWindowAdapter`. I strongly suggest you to make sure you implement the code before answering, cox, it can mislead the users. – VenomVendor Mar 31 '13 at 14:33
-
1getAssets() is a method of the Context class, which is a parameter of the PopupAdapters constructor. Android supports otf but not since version 1.0, it's even in the update provided in your link. I'm not 100% sure since when OTF support is in Android, but my example is functional on a Galaxy Nexus running 4.2.2. – Daniel H. Mar 31 '13 at 14:44
-
I have replaced my code with your code, am getting runtime error. – VenomVendor Mar 31 '13 at 14:56
-
Can you link a pastebin with the runtime error? Just a sidenote, you can't just replace your code with mine, because you're most likely missing the font files that I have in my projects asset folder. Have you replaced the font I used with your own? – Daniel H. Mar 31 '13 at 15:02
-
I can only make an assuption here. Have you checked in the debugger that context is not null? The call that creates the PopupAdapter should lookesome like this: `map.setInfoWindowAdapter(new PopupAdapter(getLayoutInflater(), this));`. Does the file exist as *projectroot*/assets/FrizQua.ttf? – Daniel H. Mar 31 '13 at 15:30
-
1I'm a little out of ideas. I've created a fork from the CommonsWare example, and put my changes into it. It's available here https://github.com/tchackie/cw-omnibus. I tested it on Jelly Bean and a Gingerbread Device, and it's working on both. Hope you find a way to get your project working. – Daniel H. Mar 31 '13 at 16:21