在 Maps V2 中使用自定义字体
Posted
技术标签:
【中文标题】在 Maps V2 中使用自定义字体【英文标题】:Using Custom Typeface in Maps V2 【发布时间】:2013-03-18 02:23:21 【问题描述】:我正在尝试使用 CommonsWare's Example 在 MapView 中自定义 Snippet 和 Title 的视图但是我无法自定义 sn-p 的 字体。 运气好吗?
【问题讨论】:
【参考方案1】:如果您从 CommonsWare 扩展示例,您应该有一个 PopupAdapter 负责显示您的 InfoWindow。
我已经扩展了 PopupAdapter 以从我的资产文件夹中加载字体,并将其设置为标题和 sn-p 视图字体
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);
【讨论】:
我投了反对票,原因如下,android doesn't support otf。getAssets()
在 InfoWindowAdapter
中无法识别。我强烈建议你在回答之前确保你实现了代码,考克斯,它会误导用户。
getAssets() 是 Context 类的方法,是 PopupAdapters 构造函数的参数。 Android 支持 otf 但从 1.0 版开始不支持,它甚至在您链接中提供的更新中。我不是 100% 确定,因为 OTF 支持何时在 Android 中,但我的示例在运行 4.2.2 的 Galaxy Nexus 上运行。
我已经用你的代码替换了我的代码,出现运行时错误。
你能把一个 pastebin 与运行时错误联系起来吗?只是一个旁注,你不能只用我的代码替换你的代码,因为你很可能会丢失我在项目资产文件夹中的字体文件。你把我用的字体换成你自己的了吗?
我有点想不通。我从 CommonsWare 示例创建了一个分支,并将我的更改放入其中。可在此处获取github.com/tchackie/cw-omnibus。我在 Jelly Bean 和 Gingerbread 设备上对其进行了测试,并且两者都可以使用。希望您能找到一种方法让您的项目正常运行。以上是关于在 Maps V2 中使用自定义字体的主要内容,如果未能解决你的问题,请参考以下文章
python中matplotlib自定义设置图像标题使用的字体类型:获取默认的字体族及字体族中对应的字体自定义设置图像标题使用的字体类型