我正在写一个包含一些代码片段的应用程序。如何突出显示android中的代码片段?
作为通常的方式,它可以在TextView中显示,但我想突出显示一些关键字说“主”,“int”,“类”,“返回”等,经过很多时间我想出它可以可以使用加载到webview的html和css来完成,但它有一些缺点,比如渲染速度慢,所以会造成不好的用户体验。
有没有更好的方法来处理解决方案? 这将是巨大的,给我一些代码示例...
感谢
我正在写一个包含一些代码片段的应用程序。如何突出显示android中的代码片段?
作为通常的方式,它可以在TextView中显示,但我想突出显示一些关键字说“主”,“int”,“类”,“返回”等,经过很多时间我想出它可以可以使用加载到webview的html和css来完成,但它有一些缺点,比如渲染速度慢,所以会造成不好的用户体验。
有没有更好的方法来处理解决方案? 这将是巨大的,给我一些代码示例...
感谢
使用SpannableString:
SpannableString string = new SpannableString("Your text that has to be highlighted");
string.setSpan(new BackgroundColorSpan(Color.YELLOW), 0, 10, 0);
textView.setText(string);
BackgroundColorSpan改变背景颜色。同时检查ForegroundColorSpan。
或者使用Html.fromHtml
它接受HTML标签:因为它涉及解析字符串
String text1 = "Start your text ";
String text2 = "<font color='#EE0000'>and it is now red</font>";
textView.setText(Html.fromHtml(text1 + text2));
的Html方式可能会比SpannableString慢一点。
如果我的代码段包含100行,该怎么办? 有没有办法自动模板? –
您必须给出必须突出显示的文本的起始索引和结束索引。 – Bob
是的,但在我的情况下,我有大约100个代码片段,这是一些繁琐的手动设置,我希望这可以自动完成? 就像css标签 –
“经过大量的时间我想出了它可以完成使用HTML和CSS加载到WebView,但它有一些缺点,如缓慢的渲染,所以它使坏的用户体验” - 我没有问题显示格式化源代码在'WebView'中。 – CommonsWare
你确定吗?只需使用TextView等本机小部件进行测试即可。 说你的ParentLayout由两个小部件,TextView和WebView加载一些文本和比较渲染时间... 此外有时webview会变空白!我不知道为什么 –
“你确定吗?” - 考虑到我作为一个APK发布了[我的书](https://commonsware.com/Android)好几年了,并且我在章节中使用了格式化的源代码,并且这些章节显示在“WebView”中小工具,是的,我相当确定它的工作原理。 – CommonsWare