Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应用自定义字体后生成的textview的getText_Android_Android Fonts_Android Typeface - Fatal编程技术网

Android 应用自定义字体后生成的textview的getText

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

我正在开发一个应用程序,将普通文本转换为盲文文本,然后我希望将转换后的文本打印成pdf格式

目前,我刚刚通过使用盲文的自定义字体转换了文本

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(在图像上写入)我会和你分享的(对不起我的英语不好)