android 设置中文繁体 安卓怎么调繁体

您所在的位置:网站首页 安卓手机怎么繁体调整简体中文 android 设置中文繁体 安卓怎么调繁体

android 设置中文繁体 安卓怎么调繁体

2024-07-13 04:24| 来源: 网络整理| 查看: 265

1、多语言的实现:是指同一个应用界面能支持多种语言的显示,供不同语言的人使用。也就是我们应用内显示的字符串都要有不同语言的多个备份。

首先最重要一点是不能把要显示的字符串写死在代码里,而是应该写到对应的配置文件中,也就是res目录下的strings.xml中。

2、根据需求为每种要支持的语言创建一份对应的strings.xml。

(1)新建文件夹

android 设置中文繁体 安卓怎么调繁体_android 设置中文繁体

(2)选择locale,并选择要支持的语言和地区。(我选择的是繁体字,所以选择台湾)

android 设置中文繁体 安卓怎么调繁体_android_02

(3)形成一份新的values-zh-rTW       strings.xml

android 设置中文繁体 安卓怎么调繁体_android 设置中文繁体_03

android 设置中文繁体 安卓怎么调繁体_语言_04

android 设置中文繁体 安卓怎么调繁体_简体_05

这样,应用中显示的每一个字符串在上述方法得到的各个strings.xml文件中都需要有一个备份(当然,语言的内容要更改为对应语言)。

3、代码的实现:

(1)设置语言界面:(Setting.class)

android 设置中文繁体 安卓怎么调繁体_android 设置中文繁体_06

先判断手机系统用的是什么语言

if (sharedPreferencesUtil.getLanguage().equals("CN")) { tv_simple_language.setTextColor(getResources().getColor(R.color.e50011));//简体选中 tv_tw_language.setTextColor(getResources().getColor(R.color.A333333));//繁体未选中 } else if (sharedPreferencesUtil.getLanguage().equals("TW")) { tv_simple_language.setTextColor(getResources().getColor(R.color.A333333));//简体未选中 tv_tw_language.setTextColor(getResources().getColor(R.color.e50011));//繁体选中 } else if (sharedPreferencesUtil.getLanguage().equals("0")) {//sharedPreferencesUtil.getLanguage()初始化为 0 (获取系统的语言) if (getResources().getConfiguration().locale.getCountry().equals("CN")) {//判断当前手机系统的语言 tv_simple_language.setTextColor(getResources().getColor(R.color.e50011));//简体选中 tv_tw_language.setTextColor(getResources().getColor(R.color.A333333));//繁体未选中 sharedPreferencesUtil.setLanguage("CN");//简体 } else if (getResources().getConfiguration().locale.getCountry().equals("TW")) { tv_simple_language.setTextColor(getResources().getColor(R.color.A333333));//简体未选中 tv_tw_language.setTextColor(getResources().getColor(R.color.e50011));//繁体选中 sharedPreferencesUtil.setLanguage("TW");//繁体 } } Resources resources = getResources(); Configuration configuration = resources.getConfiguration(); // 获取资源配置 DisplayMetrics metrics = resources.getDisplayMetrics();//获得屏幕参数:主要是分辨率,像素等。 tv_simple_language.setTextColor(getResources().getColor(R.color.e50011)); tv_tw_language.setTextColor(getResources().getColor(R.color.A333333)); sharedPreferencesUtil.setLanguage("CN");//简体 configuration.locale = Locale.CHINA; // 设置当前语言配置为简体 resources.updateConfiguration(configuration, metrics); // 更新配置文件 sendBroadcast(new Intent("language")); // 发送广播,广播接受后重新开启此Activtiy以重新初始化界面语言. finish(); Resources resources = getResources(); Configuration configuration = resources.getConfiguration(); // 获取资源配置 DisplayMetrics metrics = resources.getDisplayMetrics(); tv_simple_language.setTextColor(getResources().getColor(R.color.A333333)); tv_tw_language.setTextColor(getResources().getColor(R.color.e50011)); sharedPreferencesUtil.setLanguage("TW");//繁体 configuration.locale = Locale.TAIWAN; // 设置当前语言配置为繁体 resources.updateConfiguration(configuration, metrics); // 更新配置文件 sendBroadcast(new Intent("language")); // 发送广播,广播接受后重新开启此Activtiy以重新初始化界面语言.

(2)ChangeReceiver广播类(为了实现点击按钮后整个app的语言都相应的变化)

/** * Created by hong on 2016/10/26. * * 自定义广播类 语言改变后重启Activity * */ public class ChangeReceiver extends BroadcastReceiver { private Intent mIntent; @Override public void onReceive(Context context, Intent intent) { mIntent = new Intent(context, MainActivity.class); mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//关闭所有的activity,返回首页 mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(mIntent); } }

(3)在AndroidManifest.xml 里注册广播

(4)启动页界面(SplashActivity)

在启动页要判断之前是否有设置过语言

Configuration config = getResources().getConfiguration(); DisplayMetrics dm = getResources().getDisplayMetrics(); if (sharedPreferencesUtil.getLanguage().equals("CN")) { config.locale = Locale.CHINA; // 设置当前语言配置为简体 getResources().updateConfiguration(config, dm); // 更新配置文件 } else if (sharedPreferencesUtil.getLanguage().equals("TW")) { config.locale = Locale.TAIWAN; // 设置当前语言配置为繁体 getResources().updateConfiguration(config, dm); // 更新配置文件 }

注:因为在MainActivity中有从服务端获取图片放在viewpager上,作为广告栏,存放图片是用

设置语言的时候,用 DisplayMetrics metrics = new DisplayMetrics();广告栏的图片加载不出来,后面改成 DisplayMetrics dm =getResources().getDisplayMetrics();图片就可以加载出来了。(这只是我遇到的问题)

android 设置中文繁体 安卓怎么调繁体_简体_07

android 设置中文繁体 安卓怎么调繁体_android_08



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3