android语言切换,android 应用内切换语言

Android切换系统语言会做哪些操作

以MIUI系统为例,来说明一下切换系统语言步骤:

创新互联公司专注于项城企业网站建设,成都响应式网站建设公司,商城网站建设。项城网站建设公司,为项城等地区提供建站服务。全流程定制设计,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

1、打开手机设置应用页面,选择“系统高级设置”选项。

2、系统高级设置页面中选择“语言和输入法”选项。

3、选择"语言"设置选项。

4、选择需要的语言即可。

Android应用内切换语言

首先扯点别的:这是第一次在上写东西,我突然明白为啥这么多人在上写东西了,因为没有广告啊,哈哈。

最近接触到Android 应用内切换语言的问题,研究了两天,做个记录先。实现了中文,英文,泰语的切换。测试机器 Nexus5(Android p),HUAWEI荣耀9青春版(8.0.0),XIAOMI mi 4LTE(6.0.1)。看下效果

完整的例子在底部

实现步骤

首先需要新建对应语言环境下的资源文件

定义一个BaseActivity,重写attachBaseContext方法,在此方法里进行语言切换

LanguageUtil中的attachBaseContext()方法

在attachBaseContext()方法中,我们判断一下,如果当前api大于24,那么就调用updateResources()方法更新context。

定义好BaseActivity以后,我们只需要让我们的Activity都继承这个基类即可。

自定义Application并在AndroidManifest.xml文件中声明,在Application的onCreate()方法中,调用更换语言的方法即可。

LanguageUtil中的changeAppLanguage方法

经过上面的操作就可以在7.0以下实现应用内切换语言。

定义一个ChangeLanguageActivity

如果是7.0以下,我们需要调用changeAppLanguage方法, 如果是7.0及以上系统,直接把我们想要切换的语言类型保存在SharedPreferences中,然后重新启动MainActivity即可。

可以使用google提供的新特性来解决。

完整的例子请移步

参考链接:

1.

2.

3.

4.

5.

android应用内怎么设置语言切换

1 .在工程res文件下添加对应语种的values文件,ar:阿拉伯语, en:英语    zh_rCN: 简体中文

截图如下:

2 .在功能清单文件中对要进行切换acitivity 进行配置添加

android:configChanges="locale"

3 .对语言选择的处理

public class MainActivity extends Activity {

Context context = MainActivity.this;;

int languageId;

@Override

public void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);

   read();//设置

   setContentView(R.layout.main);

   findViewById(R.id.btn_change).setOnClickListener(new OnClickListener() {

       @Override

       public void onClick(View v) {

           save();

       }

   });

}

//保存

private void save() {

   String[] languages = { "默认", "CN", "EN" };

   AlertDialog.Builder builder = new AlertDialog.Builder(context,

           android.R.style.Animation_Dialog);

   builder.setTitle("选择语言");

   final SharedPreferences languagePre = context.getSharedPreferences(

           "language_choice", context.MODE_PRIVATE);

   final int id = languagePre.getInt("id", 0);

   builder.setSingleChoiceItems(languages, id,

           new DialogInterface.OnClickListener() {

               @Override

               public void onClick(DialogInterface arg0, int index) {

                   switch (index) {

                   case 0:

                       // 系统默认语言

                       languageId = 0;

                       break;

                   case 1:

                       // 简体中文

                       languageId = 1;

                       break;

                   case 2:

                       // 英语

                       languageId = 2;

                       break;

                   case 3:

                       // 阿拉伯语

                       languageId = 3;

                       break;

                   default:

                       break;

                   }

                   languagePre.edit().putInt("id", languageId).commit();

               }

           });

   // 保存

   builder.setPositiveButton("保存", new DialogInterface.OnClickListener() {

       @Override

       public void onClick(DialogInterface dialog, int which) {

           ((Activity) context).finish();

           Intent intent = new Intent();

           intent.setClass(context, MainActivity.class);

           context.startActivity(intent);

       }

   });

   builder.show();

}

//读取

private void read() {

   SharedPreferences languagePre = getSharedPreferences("language_choice",

           Context.MODE_PRIVATE);

   int id = languagePre.getInt("id", 0);

   Log.d("MainActivity", "langauge_id=" + id);

   Toast.makeText(context, "langauge_id=" + id, Toast.LENGTH_LONG).show();

   // 应用内配置语言

   Resources resources = getResources();// 获得res资源对象

   Configuration config = resources.getConfiguration();// 获得设置对象

   DisplayMetrics dm = resources.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。

   switch (id) {

   case 0:

       config.locale = Locale.getDefault(); // 系统默认语言

       break;

   case 1:

       config.locale = Locale.SIMPLIFIED_CHINESE; // 简体中文

       break;

   case 2:

       config.locale = Locale.ENGLISH; // 英文

       break;

   default:

       config.locale = Locale.getDefault();

       break;

   }

   resources.updateConfiguration(config, dm);

}

}

android 切换语言怎么做

1打开主菜单,进入【Settings(设置)】菜单,像手机一样操作,网上拖动屏幕,选择【Language Keyboard(语言和键盘)】菜单: 2同样把屏幕往上拖动,知道最后出现【中文(简体)】的选项,然后选择它,你的手机就变成了中文界面了

Android的国际化语言适配(系统语言适配+APP内部适配)

Android国际化语言适配分为两种

1.更改手机系统语言后,APP的语言也会跟着变化

2.只改变自己APP的语言,不受手机系统语言的影响,不影响其他APP的语言,可以参考微信的切换语言的效果。

只需要创建不同语言的values即可

具体操作参考  简单的Android客户端国际化(语言适配)方案

操作的时候要注意: 当选择所要切换的语言后,则进行修改Config以及重启APP,一定要将选择的语言保存到SP中,且在activity中的oncreate中将SP中存储的语言取出来重新设置Config,否则当重启APP后,还是会跟系统语言一样。 

具体操作参考  Android应用程序内部切换语言及自定义语言


分享名称:android语言切换,android 应用内切换语言
本文网址:http://hbruida.cn/article/dseecjj.html