我想说明的Reginonal语言(Gurumukhi)在我的Andr​​oid应用我的、我想、语言、Reginonal

2023-09-07 04:40:59 作者:妝

我想,如下面的图像输出

I want the output as shown in below image

这是一个锡克教圣书,它使用区域字体(Gurumukhi),我想使这个文本使用的XML解析在我的应用程序,以显示XML文件。但问题是,当我贴这个字体在我的XML文件,将其转换成一些字母和符号,如下面

This is a Sikh holy book which uses the Regional font(Gurumukhi) and i want to make an xml file of this text to use the xml parsing to show in my application. But the Problem is when i paste this font in my xml file it converts into the some alphabets and symbols like below

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

我已经把一个Gurumukhi字体文件中的资源文件夹,并使用跌破code的正常工作

I have placed a Gurumukhi font file in the asset folder and use the below code which works fine

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")

在这种方式中的文本视图中的文本转换成Gurumukhi但如何创建我的XML文件,这种类型在其中的文本。或给我一些好的建议,哪种方式是更好地在这一类型的应用程序工作,并处理文本。我必须展示在一个应用程序4-5圣书,各有20-25页。任何帮助是AP preciated。

In that way the text in that text view converts into the Gurumukhi but How can i create my Xml file for this type of text in it. Or Give me some Good Suggestion that which way is better to work on this type of app and handle the text. I have to show 4-5 Holy books in one app and each have 20-25 pages. Any help is appreciated.

推荐答案

我已经取得了一些变化,XML保持在需要更改的头脑。

I have made some changes in xml keep in mind that changes are required.

我做了一个 data.xml中资产文件夹中的XML是作为样子,如下图所示。

I have made an data.xml in asset folder the xml is as look like as shown below

    <?xml version="1.0" encoding="UTF-8"?>
    <book1>
    <page1>&#60;&#62; 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>

之后看到我的 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));
      }


}

在code在我的活动,如下图所示。

after code in my activity is as shown below

 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());
   }