Android 应用自定义字体后生成的textview的getText
我正在开发一个应用程序,将普通文本转换为盲文文本,然后我希望将转换后的文本打印成pdf格式 目前,我刚刚通过使用盲文的自定义字体转换了文本Android 应用自定义字体后生成的textview的getText,android,android-fonts,android-typeface,Android,Android Fonts,Android Typeface,我正在开发一个应用程序,将普通文本转换为盲文文本,然后我希望将转换后的文本打印成pdf格式 目前,我刚刚通过使用盲文的自定义字体转换了文本 tvTo.setText(edFrom.getText().toString()); Typeface font = Typeface.createFromAsset(getAssets(), "braille_outline.ttf"); tvTo.setTypeface(font); 现在,当我想打印这篇文章的时候,我就这么做了 String toPr
tvTo.setText(edFrom.getText().toString());
Typeface font = Typeface.createFromAsset(getAssets(), "braille_outline.ttf");
tvTo.setTypeface(font);
现在,当我想打印这篇文章的时候,我就这么做了
String toPrint = tvTo.getText().toString();
但这会产生普通文本,而不是转换后的字体
任何帮助都将不胜感激。
谢谢toString返回一个字符串。字符串只是字符数组(基本上),它们没有字体信息。getText()返回一个字符序列,该序列可以包括设置字体和其他样式的可扩展字符。如果需要跟踪字体,则需要在该级别上工作。我不确定getText是否会在默认情况下为设置的字体返回一个可启用的span,但是您可以轻松地将文本放入一个字体span。toString返回一个字符串。字符串只是字符数组(基本上),它们没有字体信息。getText()返回一个字符序列,该序列可以包括设置字体和其他样式的可扩展字符。如果需要跟踪字体,则需要在该级别上工作。我不确定getText是否会在默认情况下为设置的字体返回span可启用span,但您可以轻松地将文本放入字体span。我不知道如何生成PDF。但我认为文本视图在这里帮不了你。相反,要将文本直接绘制到位图,可以在绘图上设置字体:
TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
textPaint.setTypeface(font);
然后在画布上绘制文本,如果文本较短:
canvas.drawText(string, 0, 0, textPaint)
如果较长,并且需要换行,请使用StaticLayout
将其绘制到画布上 我对生成PDF一无所知。但我认为文本视图在这里帮不了你。相反,要将文本直接绘制到位图,可以在绘图上设置字体:
TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
textPaint.setTypeface(font);
然后在画布上绘制文本,如果文本较短:
canvas.drawText(string, 0, 0, textPaint)
如果较长,并且需要换行,请使用StaticLayout
将其绘制到画布上 您可以使用canvas和paint以字体绘制文本,并将其保存为位图或其他内容。您可以给我任何适当的示例吗?您可以使用canvas和paint以字体绘制文本,并将其保存为位图或其他内容。您可以给我任何适当的示例吗?遗憾的是,getText()不会返回TextView上设置的字体信息,TypefaceSpan仅用于系统字体…遗憾的是,getText()不会返回TextView上设置的字体信息,TypefaceSpan仅用于系统字体…请您用适当的示例详细说明您的答案,我觉得这是这里唯一的解决办法,但我没有得到正确的答案。@WilsonChristian这段代码就是我说的你应该在canvase上绘制文本并从画布生成输出的代码。我无法与你共享在图像上写入文本的代码并保存它,但如果你需要我的代码,我不知道如何将其保存为pdf(在图像上写入)我会和你分享的(很抱歉我的英语不好)你能用适当的例子详细说明你的答案吗,我觉得这是这里唯一的解决办法,但我没有得到正确的答案。@WilsonChristian这段代码就是我说的你应该在canvase上绘制文本并从画布生成输出的代码。我无法与你共享在图像上写入文本的代码并保存它,但如果你需要我的代码,我不知道如何将其保存为pdf(在图像上写入)我会和你分享的(对不起我的英语不好)