私はアンドロイドアプリのjavaコードの構文ハイライトにjava Prettifyを使用しています。 Androidの構文の強調表示は、Javaのprettifyを使用して、テキストビューを表示しない(<より小さい)<または<=サインインしますか?
あなたが<を見ることができるように=が欠落している:私は Android Syntax Highlighting?
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", "000000"); // black
map.put("kwd", "760098"); // violet
map.put("lit", "001ab7"); // dark blue
map.put("com", "999999"); // grey, comments
map.put("str", "ff4500"); // dark orange
map.put("pun", "333333"); // 90% black
map.put("pln", "156f15"); // dark green
return map;
}
}
と
PrettifyHighlighter highlighter = new PrettifyHighlighter();
String code="public class Example { \n" +
"public static void main(String args[]) { \n" +
" for(int i=1; i<=5; i++){ \n" +
" if(i==3){ \n" +
" break; \n" +
" } \n" +
" System.out.println(i); \n" +
" } \n" +
"} \n" +
"} ";
String highlighted = highlighter.highlight("java", code);
textView.setText(Html.fromHtml(highlighted.replace("\n","<br/>"),Html.FROM_HTML_MODE_COMPACT));
XML
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/ivImage3"
android:layout_alignStart="@+id/ivImage3"
android:layout_below="@+id/ivImage3"
android:scrollbars = "vertical"
android:layout_marginTop="@dimen/program_margin_top"
android:background="@drawable/textlines"
android:textSize="16dp"
android:text="" />
OUTPUTとしてのTextViewでそれを使用して、この例に従っ出力から、それはだけではなく、私< = 5
<がTextViewの中で示されていないという理由は何であるのI5を示している、どのように私は、構文で<はtexviewを強調表示することができますか? は、すべてのヘルプは
'' \ 'を' '
' 'に置き換えたように、' '<' 'を' '< ''に置き換えてください。これにはhtmlが含まれるので、 '' <''は開始タグと見なされます。 – f1sh
highlighted = highlighted.replace( "<="、 "< =");を使用して<=を表示できました。 を<<に置き換えようとすると、https://ibb.co/gPsfSa – Jitin