Androidで動作する構文ハイライトライブラリを知っている人はいますか?私はjsyntaxpaneを見てきましたが、それはAndroidをサポートしていないようです。読み取り専用の構文強調表示のためにAndroidの構文ハイライト?
答えて
は、次の2つのオプションがあります:
はハイライトを構文と
<font color="">
(すなわち、何もCSS)を使用していないHTMLを生成することができますJavaライブラリを検索します。Html.fromHtml()
を使用してSpanned
オブジェクトを作成し、TextView
に渡すことができます。構文を強調表示して任意の種類のHTMLを生成できるJavaライブラリを見つける。これを
WebView
に表示することができます。これは、theandroid-codepad
projectのコメント投稿者が行ったことのようです。
あなたはエディタのための構文強調表示を求めている場合は、それははるかに困難です。 EditText
は同じSpanned
のTextView
を取ることができますが、キー入力ごとに、または入力の一時停止後に変更を反映させるために、ハイライト表示のすべてを実行する必要があります。または、構文処理の強調表示規則を編集プロセスにもっと緊密に焼く必要があるため、EditText
の内容全体をやり直さなくても強調表示を調整していくことができます。私はAndroid用のオープンソースシンタックスハイライトエディタを見ていませんが、いくつかのクローズドソースのものはPlayストアのアプリとして考えられています。
まあ、私はAndroidのためのオープンソースの構文の強調表示エディタをした:
https://github.com/markusfisch/ShaderEditor
それは非常にシンプルで小さなデータのための多分唯一適していますが、それはおそらく良い出発点です。
非常に良い例ですが、簡単です。EditText source:https://github.com/markusfisch/ShaderEditor/blob/master/src/de/markusfisch/android/shadereditor/ShaderEditor.java – JRomero
@JRomero Link doesn –
上記のリンクが壊れています(新しいリンクです)(https://github.com/markusfisch/ShaderEditor/blob/5af7129d05a1d122923ae78d110a55a09597589f/app/src/main/java/de/markusfisch/android/shadereditor /widget/ShaderEditor.java) –
Prettifyに基づいて、Android用の構文ハイライトを作成することができました。実際には、私がJava Prettifyを見つけたときは簡単でした。ちょうどそれをダウンロードしてください(悲しいことに、それはmavenのために公開されていません)、あなたのアプリケーションの構築パスにそのjarファイルを追加してください。
それに基づいて、私が作成した構文ハイライト:構文の
public class PrettifyHighlighter {
private static final Map<String, String> COLORS = buildColorsMap();
private static final String FONT_PATTERN = "<font color=\"#%s\">%s</font>";
private final Parser parser = new PrettifyParser();
public String highlight(String fileExtension, String sourceCode) {
StringBuilder highlighted = new StringBuilder();
List<ParseResult> results = parser.parse(fileExtension, sourceCode);
for(ParseResult result : results){
String type = result.getStyleKeys().get(0);
String content = sourceCode.substring(result.getOffset(), result.getOffset() + result.getLength());
highlighted.append(String.format(FONT_PATTERN, getColor(type), content));
}
return highlighted.toString();
}
private String getColor(String type){
return COLORS.containsKey(type) ? COLORS.get(type) : COLORS.get("pln");
}
private static Map<String, String> buildColorsMap() {
Map<String, String> map = new HashMap<>();
map.put("typ", "87cefa");
map.put("kwd", "00ff00");
map.put("lit", "ffff00");
map.put("com", "999999");
map.put("str", "ff4500");
map.put("pun", "eeeeee");
map.put("pln", "ffffff");
return map;
}
}
色がハードコーディングされているだけでなく、即ちアプリケーションの環境によって設定されてもよいです。 TextView
にのJavaソースコードを表示するためには、単に実行します。
// code is a String with source code to highlight
// myTextView is a TextView component
PrettifyHighlighter highlighter = new PrettifyHighlighter();
String highlighted = highlighter.highlight("java", code);
myTextView.setText(Html.fromHtml(highlighted));
のJava飾り立てるライブラリが大きく50KBの周りに自分のアプリケーションを作りました。
@wojciechパーフェクトで正確な................ –
@WojciechFrączDude、Cコードはどうですか? 返信を待っています –
@タルン、最初の " "java"引数を "c"または "cpp"に設定してください。 – fracz
あなたの問題を解決できるテキストハイライトのAPIを作成しました。
https://github.com/nakshay/TextHighlighter
このAPIを使用すると、言葉に特定の単語や色を渡すと、()強調表示されたテキストを取得するために、あなたはHtml.fromHtmlに送ることができるHTMLタグでフォーマットされた文字列を返しますことができます。あなたのモジュールのgradleファイルに以下のGradle依存関係を追加してください。
compile 'com.github.akshay-naik:texthighlighterapi:1.1.0'
潜在的な解決策へのリンクはいつでも歓迎しますが、リンクがもはや利用できない場合のために将来の訪問者のためにいくつかの詳細を追加してください。 –
提案ありがとうNikolay。詳細を追加する。 – Akshay
私はこの関数を見つけることができませんでしたhighlighter.setLanguage(); –
- 1. 構文ハイライト
- 2. 構文ハイライト
- 3. OpenOfficeの構文ハイライト
- 4. TextEditorの構文ハイライト
- 5. 構文Twigのハイライト
- 6. JavaScript RegEx構文ハイライト
- 7. geditのlexの構文ハイライト
- 8. Xcode構文のハイライト表示
- 9. robots.txtと.htaccess構文のハイライト
- 10. wxPythonの構文ハイライトC
- 11. Gist.githubプロローグの構文ハイライト
- 12. インライン構文MediaWikiのハイライト
- 13. 構文ハイライト付きPyQt4スペルチェック
- 14. CLエディタ - 構文ハイライト - PHP
- 15. Android開発:効果的な構文ハイライトのヒント?
- 16. pythonのdocstringsをコメントとしてハイライトする(vimの構文ハイライト)
- 17. テキストマートの.ruファイルの構文ハイライト
- 18. Scalaの構文Eclipseでのハイライト
- 19. LLVMアセンブリのためのNotepad ++構文ハイライト
- 20. 昇華型.sageの構文ハイライト
- 21. erbテンプレートのmacvim html5構文ハイライト
- 22. プログラミングフォントと構文テスト/サンプルテキストのハイライト
- 23. 構文プレーンテキスト(崇高なテキスト)のハイライト
- 24. CodeMirror:アドホック構文のハイライト表示
- 25. 構文ハイライトRDocファイルのRubyコード?
- 26. c# - 完璧な構文のハイライト
- 27. 構文iPythonノートブックマークダウンセルのハイライト表示
- 28. Webサイトのコードエディタプラグイン(Css&Less用)構文ハイライト
- 29. ブラウザとの相違点alexgorbatchev.com構文ハイライト
- 30. 崇高なテキスト2 HTML5構文のハイライト
yiuはハイライトしたいものは何ですか? – Ahmad
あなたの質問にもっと詳しく説明してください。どのコンポーネントにハイライトを表示したいですか? –
http://code.google.com/p/android-codepad/ –