Android XML解析与泰米尔新闻API

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android XML解析与泰米尔新闻API相关的知识,希望对你有一定的参考价值。

我正在使用此API为我的XML解析“qazxsw poi”获取列表中的泰米尔新闻,但它不工作..请帮助我..这是我的代码..

http://cinema.dinamalar.com/rss.php
答案

首先,您必须了解android操作系统中没有泰米尔语语言支持(除了少数三星和SE手机),直到ICS(4.0)。即便如此,它还有虫子,并且Jelly Bean(4.2)提供了全面的支持。

如果您在应用中使用Unicode Tamil字体,则只会看到框。原因是系统中没有泰米尔语字体。

1.手动方式

这个解决方案有一个解决方案。您所要做的就是下载Bamini字体并将其放在您的资源文件夹中。并使用字体Bamini创建TypeFace并将其设置为TextView。

public class MainActivity extends Activity {
  TextView tv1,tv2,tv3;
  String URL = "http://cinema.dinamalar.com/rss.php";

  // XML node keys
  String KEY_ITEM = "item"; // parent node
  String KEY_TITLE = "title";
  String KEY_LINK = "link";
  String KEY_DESC = "description";
  String KEY_DATE = "pubDate";


  @SuppressLint("SetjavascriptEnabled")
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tv1 = (TextView) findViewById(R.id.textView1);
    tv2 = (TextView) findViewById(R.id.textView2);
    tv3 = (TextView) findViewById(R.id.textView3);

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

    StrictMode.setThreadPolicy(policy);

    XMLParser parser = new XMLParser();

    String xml = parser.getXmlFromUrl(URL); // getting XML
    Document doc = parser.getDomElement(xml); // getting DOM element

    //p.getElementsByTagName('Category')[0].firstChild.wholeText

    tv1.setText(parser.getValue((Element) doc.getElementsByTagName(KEY_ITEM).item(0),KEY_TITLE).toString());

    tv2.setText(parser.getValue((Element) doc.getElementsByTagName(KEY_ITEM).item(0),KEY_AUTHOR).toString());
    tv3.setText(parser.getValue((Element) doc.getElementsByTagName(KEY_ITEM).item(0),KEY_LINK).toString());
    Toast.makeText(this,parser.getValue((Element) doc.getElementsByTagName(KEY_ITEM).item(0),KEY_LINK),Toast.LENGTH_SHORT).show();

  }
}

现在使用转换器将Unicode字体转换为Bamini编码。而不是Unicode文本提供转换后的Bamini编码脚本到setText方法。

2.使用图书馆

如果您讨厌所有这些手动编码转换,请查看此库

正如我在上面所说,如果你想在运行应用程序时动态更改编码,那么考虑使用我为Android编写的库。该库将帮助您将Unicode字符串转换为Bamini,TSCII,TAB,TAM和Anjal。

设置很简单。您只需将库导入Android项目并调用库,如下所示。

Typeface font1 = Typeface.createFromAsset(getAssets(), "fonts/Bamini.ttf");
customText1.setTypeface(font1);

有一个示例应用程序以及库。查看应用程序如何使用库将Unicode字符串转换为Bamini,TAB,TAM,TSCII和Anjal。

您需要使用Android中提供的TypeFace类。您可以使用Bamini或TSCII编码(Mylai是TSCII字体)。

以上是关于Android XML解析与泰米尔新闻API的主要内容,如果未能解决你的问题,请参考以下文章

Android 创建与解析XML—— Pull方式

android之简易新闻客户端

Android 测试数据存储与访问XML解析与生成

Android Api 27 在 Android 8.0 上出现 Only fullscreen opaque activities can request orientation 的解决情况(代码片

急!android编程 请问像网易新闻安卓客户端的界面是怎么做的啊?用了哪些控件?

Android SVG动画PathView源代码解析与使用教程(API 14)