Nar*_*rma 6 xml fonts android localization
我想要输出如下图所示

这是一本使用区域字体(Gurumukhi)的锡克教圣书,我想制作一个这个文本的xml文件,使用xml解析在我的应用程序中显示.但问题是,当我将此字体粘贴到我的xml文件中时,它会转换为一些字母和符号,如下所示
jpujI swihb
<> siq nwmu krqw purKu inrBau inrvYru
Akwl mUriq AjUnI sYBM gur pRswid ]
] jpu ]
Awid scu jugwid scu ]
hY BI scu nwnk hosI BI scu ]1]
socY soic n hoveI jy socI lK vwr ]
cupY cup n hoveI jy lwie rhw ilv qwr ]
BuiKAw BuK n auqrI jy bMnw purIAw Bwr ]
shs isAwxpw lK hoih q iek n clY nwil ]
ikv sicAwrw hoeIAY ikv kUVY qutY pwil ]
hukim rjweI clxw nwnk iliKAw nwil ]1]
hukmI hovin Awkwr hukmu n kihAw jweI ]
hukmI hovin
Run Code Online (Sandbox Code Playgroud)
我在资产文件夹中放置了一个Gurumukhi字体文件,并使用下面的代码,它工作正常
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/bulara_5.ttf");
textView = (TextView) findViewById(R.id.textView1);
textView.setTypeface(tf);
textView.setMovementMethod(new ScrollingMovementMethod());
textView.setText(" <>siq nwmu krqw purKu inrBau inrvYru")
Run Code Online (Sandbox Code Playgroud)
通过这种方式,该文本视图中的文本转换为Gurumukhi但是How can i create my Xml file for this type of text in it.或者Give me some Good Suggestion that which way is better to work on this type of app and handle the text.我必须在一个应用程序中显示4-5本圣书,每本有20-25页.任何帮助表示赞赏.
我对 xml 进行了一些更改,请记住更改是必需的。
我在 asset 文件夹中创建了一个data.xml,该 xml 如下所示
<?xml version="1.0" encoding="UTF-8"?>
<book1>
<page1><> siq nwmu krqw purKu inrBau inrvYru
Akwl mUriq AjUnI sYBM gur pRswid ]
] jpu ]
Awid scu jugwid scu ]
hY BI scu nwnk hosI BI scu ]1]
socY soic n hoveI jy socI lK vwr ]
cupY cup n hoveI jy lwie rhw ilv qwr ]
BuiKAw BuK n auqrI jy bMnw purIAw Bwr ]
shs isAwxpw lK hoih q iek n clY nwil ]
ikv sicAwrw hoeIAY ikv kUVY qutY pwil ]
hukim rjweI clxw nwnk iliKAw nwil ]1]
hukmI hovin Awkwr hukmu n kihAw jweI ]
hukmI hovin jIA hukim imlY vifAweI ]
hukmI auqmu nIcu hukim iliK duK suK pweIAih ]
ieknw hukmI bKsIs ieik hukmI sdw BvweIAih ]
hukmY AMdir sBu ko bwhir hukm n koie ]
nwnk hukmY jy buJY q haumY khY n koie ]2]
gwvY ko qwxu hovY iksY qwxu ]</page1>
</book1>
Run Code Online (Sandbox Code Playgroud)
之后看到我的StudyParser.class如下所示
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class StudyParser {
public StudyParser() {
}
public final static Document XMLfromString(String xml){
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setCoalescing(true);
try {
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xml));
doc = db.parse(is);
} catch (ParserConfigurationException e) {
System.out.println("XML parse error: " + e.getMessage());
return null;
} catch (SAXException e) {
System.out.println("Wrong XML file structure: " + e.getMessage());
return null;
} catch (IOException e) {
System.out.println("I/O exeption: " + e.getMessage());
return null;
}
return doc;
}
public static String getXMLstring(String xml){
String line = null;
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(xml);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
line = EntityUtils.toString(httpEntity);
} catch (UnsupportedEncodingException e) {
line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
} catch (MalformedURLException e) {
line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
} catch (IOException e) {
line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
}
return line;
}
public static String getXML(InputStream is)throws IOException {
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result = bis.read();
while(result != -1) {
byte b = (byte)result;
buf.write(b);
result = bis.read();
}
return buf.toString();
}
public final static String getElementValue( Node elem ) {
Node kid;
if( elem != null){
if (elem.hasChildNodes()){
for( kid = elem.getFirstChild(); kid != null; kid = kid.getNextSibling() ){
if( kid.getNodeType() == Node.TEXT_NODE ){
return kid.getNodeValue();
}
}
}
}
return "";
}
public static int numResults(Document doc){
Node results = doc.getDocumentElement();
int res = -1;
try{
res = Integer.valueOf(results.getAttributes().getNamedItem("Categories").getNodeValue());
}catch(Exception e ){
res = -1;
}
return res;
}
public static String getValue(Element item, String str) {
NodeList n = item.getElementsByTagName(str);
return StudyParser.getElementValue(n.item(0));
}
}
Run Code Online (Sandbox Code Playgroud)
我的活动中的代码如下所示
TextView txt;
try{
txt = (TextView)findViewById(R.id.tv);
String xml= StudyParser.getXML(getAssets().open("data.xml"));
Document doc = StudyParser.XMLfromString(xml);
NodeList n = doc.getElementsByTagName("book1");
Element eid = (Element) n.item(0);
String Js=StudyParser.getValue(eid, "page1");
Typeface tf = Typeface.createFromAsset(getAssets(),"bulara_5.ttf");
txt.setTypeface(tf);
txt.setText(Js);
}catch(Exception e){
Log.e("error",e.toString());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1979 次 |
| 最近记录: |