दिलचस्प पोस्ट
सीएसएस द्वारा विशुद्ध रूप से आईफोन / आईपैड का पता लगाएं एक हाइपरलिंक में एक अलग पोर्ट नंबर के लिए सापेक्ष यूआरएल? पायथन 3.x में एक सूची वापस करने के लिए मानचित्र () प्राप्त करना एन वस्तुओं की सरणी में सबसे छोटी संख्याओं को खोजने के लिए एल्गोरिथम Junit4 टेस्ट सूट कॉलम जोड़ना जिसमें दूसरे कॉलम के बिन मूल्य शामिल हैं संसाधन फ़ोल्डर में फ़ाइलों की एक सूची प्राप्त करना – IOS मैं जावा में एक जेनेरिक फ़ील्ड का प्रकार कैसे निर्धारित करूं? आईओएस में अपनी स्वयं के यूआरएल यूआरएल को संभालने के लिए संभव है? jQuery: $ ()। क्लिक करें (एफ एन) बनाम $ ()। बाँध ('क्लिक', फ़ेन्ने); मैं jQuery में "होवर" कैसे खोलूं? कैसे पहलू अनुपात के संरक्षण के लिए स्क्रीन भर में तीन छवियों खिंचाव? कई श्रेणियों में वर्गीकृत करने के लिए scikit-learn का उपयोग करें कैसे एक सूची <string> एक DataGridView नियंत्रण करने के लिए बाध्य करने के लिए? आप बैच फ़ाइलों में एक नई लाइन कैसे गूंज सकते हैं?

एंड्रॉइड सिंटेक्स हाइलाइटिंग?

क्या किसी को एंड्रॉइड पर काम करने वाले वाक्य रचना हाइलाइटिंग लाइब्रेरी का पता है? मैंने jsyntaxpane पर देखा है लेकिन यह एंड्रॉइड का समर्थन नहीं करता है

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड सिंटेक्स हाइलाइटिंग?"

केवल पढ़ने के लिए सिंटैक्स हाइलाइटिंग के लिए, आपके पास दो विकल्प हैं:

  1. एक जावा लाइब्रेरी ढूंढें जो हाइलाइट सिंटैक्स कर सकते हैं और <font color=""> (यानी, कोई सीएसएस नहीं) का उपयोग करके एचटीएमएल उत्पन्न कर सकते हैं। तब आप Html.fromHtml() का उपयोग कर सकते हैं एक Html.fromHtml() ऑब्जेक्ट बनाने के लिए जिसे आप एक Html.fromHtml() हाथ कर सकते हैं।

  2. एक जावा लाइब्रेरी ढूंढें जो हाइलाइट सिंटैक्स कर सकते हैं और किसी भी प्रकार की HTML बना सकते हैं। आप तब उस WebView में प्रदर्शित कर सकते हैं। ऐसा प्रतीत होता है कि android-codepad प्रोजेक्ट जो एक टिप्पणीकर्ता से जुड़ा हुआ है।

यदि आप एक संपादक के लिए सिंटैक्स हाइलाइटिंग की तलाश कर रहे हैं, तो यह काफी अधिक कठिन है जबकि EditText एक ही Spanned ले सकता है, जो TextView कर सकता है, आपको सिंटैक्स हाइलाइटर के माध्यम से हर चीज को प्रतिबिंबित करने के लिए, प्रति-कीस्ट्रोक के आधार पर, या टाइपिंग में एक विराम के बाद सब कुछ रन करना होगा। या, आपको सिंटैक्स हाइलाइट करने वाले नियमों को संपादन प्रक्रिया में बहुत अधिक कसने की ज़रूरत पड़ेगी, ताकि आप किसी भी तरह से हाइलाइटिंग को समायोजित कर सकें, बिना संपादन EditText की पूरी सामग्री को फिर से कर सकते हैं। मैंने एंड्रॉइड के लिए एक ओपन सोर्स सिंटैक्स-हाइलाइटिंग एडिटर नहीं देखा है – कुछ बंद-स्रोत वाले प्ले स्टोर पर ऐप्स हैं, हालांकि।

मैं थरथाना पर आधारित एंड्रॉइड के लिए सिंटैक्स हाइलाइटर बनाने में कामयाब रहा। यह आसान था, वास्तव में, जब मुझे जावा भिनभिनाना मिल गया बस इसे डाउनलोड करें (दुख की बात है, यह मेवेन के लिए प्रकाशित नहीं है) और अपने जार को आप के निर्माण के रास्ते में जोड़ें।

सिंटैक्स हाइलाइटर मैं इसके आधार पर बनाया है:

 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 में जावा स्रोत कोड प्रदर्शित करने के लिए, बस करें:

 // 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)); 

जावा प्रेटेटिफ लाइब्रेरी ने मेरे आवेदन को लगभग 50kB बड़ा बना दिया।

ठीक है, मैंने एंड्रॉइड के लिए एक ओपन सोर्स सिंटैक्स-हाइलाइटिंग एडिटर बनाया है:

https://github.com/markusfisch/ShaderEditor

यह काफी आसान है और शायद केवल छोटे डेटा के लिए उपयुक्त है, लेकिन यह शायद एक अच्छा प्रारंभिक बिंदु है।

मैंने हाइलाइटिंग के लिए एपीआई बनाया है जो आपकी समस्या को हल कर सकता है।

https://github.com/nakshay/TextHighlighter

यह एपीआई आपको शब्दों और रंगों को शब्दों से अलग करने की अनुमति देता है और वह स्ट्रिंग लौटाएगा जो एचटीएमएल टैग के साथ स्वरूपित होती है, जिसे आप हाइलाइट टेक्स्ट प्राप्त करने के लिए Html.fromHtml () भेज सकते हैं। अपने मॉड्यूल की ग्रेडल फाइल में ग्रैडल निर्भरता नीचे जोड़ें।

 compile 'com.github.akshay-naik:texthighlighterapi:1.1.0'