2

我正在使用此 API 进行 XML 解析“ http://cinema.dinamalar.com/rss.php ”以获取列表中的泰米尔语新闻,但它不起作用..请帮助我..这是我的代码..

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

  }
}
4

1 回答 1

0

首先,您必须了解在 ICS(4.0) 之前,Android 操作系统(少数三星和 SE 手机除外)不支持泰米尔语。即便如此,它也有错误,并且 Jelly Bean (4.2) 提供了全面支持。

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

1.手动方式

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

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

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

2. 使用图书馆

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

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

设置非常简单。您所要做的就是简单地将库导入您的 Android 项目并调用该库,如下所示。

// Initialise the Typeface (assumes TSCII, Bamini, Anjal, TAB or TAM font located inside assets/fonts folder)
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/mylai.ttf");
// Initialises the TextView
TextView tv = (TextView)findViewById(R.id.textView1);
//Setting the Typeface
tv.setTypeface(tf);
//Magic happens here ;) encoding conversion
String TSCIIString = TamilUtil.convertToTamil(TamilUtil.TSCII, "வணக்கம் அன்ரொயிட்");
//Setting the new string to TextView
tv.setText(TSCIIString);

该库提供了一个示例应用程序。查看该应用程序,了解如何利用该库将 Unicode 字符串转换为 Bamini、TAB、TAM、TSCII 和 Anjal。

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

于 2019-02-27T07:41:33.297 回答