本文介绍了如何在Android中显示南印度语种?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要求以多种语言显示一个文本,尤其是卡纳达语和泰卢固语。
我正在使用最低要求的API 14(4.0)进行开发
推荐答案
试试...
我在这里分享了整个应用程序代码。
项目结构
activity_main_activity1.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#2b579a"
android:orientation="vertical"
tools:context=".MainActivity1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/kannada"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="start"
android:text="@string/kannada"
android:textColor="#FFFFFF"
android:textSize="20sp" />
<Button
android:id="@+id/telugu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="end"
android:text="@string/telugu"
android:textColor="#FFFFFF"
android:textSize="20sp" />
<Button
android:id="@+id/english"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="end"
android:text="@string/english"
android:textColor="#FFFFFF"
android:textSize="20sp" />
</LinearLayout>
<TextView
android:id="@+id/news"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/note"
android:textColor="#FFFFFF"
android:textSize="20sp" />
</LinearLayout>
Values/strings.xml
值-kn/strings.xml
用于卡纳达语的字符串。
值-te/strings.xml
设置字体
下载字体here。
MainActivity1.java
package com.hirecraft.stackoverflowtest;
import java.util.Locale;
import android.app.Activity;
import android.content.res.Configuration;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity1 extends Activity {
/**
* Declaration
*/
Button kannada, telugu, english;
String currentLanguage;
TextView news;
Typeface kannadaFont, teluguFont;
/**
* This class describes all device configuration information
* that can impact the resources the application retrieves. This
* includes both user-specified configuration options (locale
* and scaling) as well as device configurations (such as input
* modes, screen size and screen orientation).
*/
Configuration config;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity1);
/**
* Initialization
*/
currentLanguage = "";
kannada = (Button) findViewById(R.id.kannada);
telugu = (Button) findViewById(R.id.telugu);
english = (Button) findViewById(R.id.english);
news = (TextView) findViewById(R.id.news);
/**
* Initialize the fonts.
*/
kannadaFont = Typeface.createFromAsset(getAssets(), "fonts/akshar.ttf");
teluguFont = Typeface.createFromAsset(getAssets(), "fonts/gautami.ttf");
/**
* Event for Kannada
*/
kannada.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/**
* "kn" is the localization code for our Kannada language.
*/
currentLanguage = "kn";
Locale locale = new Locale(currentLanguage);
Locale.setDefault(locale);
/**
* Print the current language
*/
System.out.println("My current language: "
+ Locale.getDefault());
config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
news.setText(R.string.note);
news.setTypeface(kannadaFont);
}
});
telugu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/**
* "te" is the localization code for our Telugu language.
*/
currentLanguage = "te";
Locale locale = new Locale(currentLanguage);
Locale.setDefault(locale);
/**
* Print the current language
*/
System.out.println("My current language: "
+ Locale.getDefault());
config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
news.setText(R.string.note);
news.setTypeface(teluguFont);
}
});
english.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/**
* "en" is the localization code for our default English language.
*/
currentLanguage = "en";
Locale locale = new Locale(currentLanguage);
Locale.setDefault(locale);
/**
* Print the current language
*/
System.out.println("My current language: "
+ Locale.getDefault());
config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
news.setText(R.string.note);
}
});
}
}
androidManifest.xml
屏幕截图:
1.默认区域设置(英语)
2.卡纳达
3.泰卢固语
这篇关于如何在Android中显示南印度语种?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!