android - 如何在android studio上的textview中启用c代码的语法突出显示?

标签 android c syntax highlighting

我创建了一个应用程序,供学生通过示例学习软件。我已经在游戏商店发布了。我正在继续开发这个应用程序。我想在所有 C 代码中显示语法突出显示,但我还没有找到一种方法来做到这一点。我尝试了很多方法来添加语法高亮,但这是不可能的。

最佳答案

如果我的要求是正确的,如果我错了,请纠正我。您需要在 TextView 上显示代码 fragment (C 语言)的语法突出显示,而您现有的 Play 商店应用程序仅以黑白显示。

要获取突出显示的 html 代码 fragment ,您可以使用 this site然后您可以从上述链接网站的 HTML 代码 部分获取突出显示的代码 fragment 的 html。之后,您有两个选项可以将其显示在 Android 应用程序上。

  1. 使用TextView

    使用 java,您可以使用以下 util 方法填充 TextView

    myTextView.setTextsetText(Html.fromHtml("<pre style='color:#000000;background:#ffffff;'><span style='color:#004a43; '>#</span><span style='color:#004a43; '>include </span><span style='color:#800000; '>&lt;</span><span style='color:#40015a; '>stdio.h</span><span style='color:#800000; '>></span>\n" +
            "<span style='color:#800000; font-weight:bold; '>int</span> <span style='color:#400000; '>main</span><span style='color:#808030; '>(</span><span style='color:#808030; '>)</span>\n" +
            "<span style='color:#800080; '>{</span>\n" +
            "   <span style='color:#696969; '>// printf() displays the string inside quotation</span>\n" +
            "   <span style='color:#603000; '>printf</span><span style='color:#808030; '>(</span><span style='color:#800000; '>\"</span><span style='color:#0000e6; '>Hello, World!</span><span style='color:#800000; '>\"</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>\n" +
            "   <span style='color:#800000; font-weight:bold; '>return</span> <span style='color:#008c00; '>0</span><span style='color:#800080; '>;</span>\n" +
            "<span style='color:#800080; '>}</span>\n" +
            "</pre>"));
    
  2. 使用WebView 再次使用 java,您可以使用从上述站点获取的 html 代码填充 webView。

    WebView webView  = (WebView) findViewById(R.id.webView);
    webView.loadData("<pre style=\"color:#000000;background:#ffffff;\"><span style=\"color:#004a43; \">#</span><span style=\"color:#004a43; \">include </span><span style=\"color:#800000; \">&lt;</span><span style=\"color:#40015a; \">stdio.h</span><span style=\"color:#800000; \">&gt;</span>\n" +
            "<span style=\"color:#800000; font-weight:bold; \">int</span> <span style=\"color:#400000; \">main</span><span style=\"color:#808030; \">(</span><span style=\"color:#808030; \">)</span>\n" +
            "<span style=\"color:#800080; \">{</span>\n" +
            "   <span style=\"color:#696969; \">// printf() displays the string inside quotation</span>\n" +
            "   <span style=\"color:#603000; \">printf</span><span style=\"color:#808030; \">(</span><span style=\"color:#800000; \">\"</span><span style=\"color:#0000e6; \">Hello, World!</span><span style=\"color:#800000; \">\"</span><span style=\"color:#808030; \">)</span><span style=\"color:#800080; \">;</span>\n" +
            "   <span style=\"color:#800000; font-weight:bold; \">return</span> <span style=\"color:#008c00; \">0</span><span style=\"color:#800080; \">;</span>\n" +
            "<span style=\"color:#800080; \">}</span>\n" +
            "</pre>","text/html", "UTF-8");
    

关于android - 如何在android studio上的textview中启用c代码的语法突出显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50534194/

相关文章:

C++ 语法问题 - 为什么我不能用逗号来分隔不同类型的变量定义

java - 第一次尝试后动画无法再现

java - 将文件从应用程序复制到系统目录?

c - Swift.String 到 CMutablePointer<CChar>

c - 如何检查记录是否存在于C中的sqlite中

c - fgets() 自行初始化变量

android - 如何在 android 外部存储目录中创建一个文件夹?

java - ZXing 出错

c# - C# 中的 false 运算符有什么用?

json - 如何将 JSON(字符串数据)传递给 PowerShell?