精华内容
下载资源
问答
  • Android开发之中英文切换
    2021-06-02 23:50:58

    这篇文章详细介绍了Android开发之中英文切换,文中穿插有实例代码和示例程序介绍的很详细,遇到同样问题的朋友可以参考一下,如果有更好的解决方法,请留言分享帮助更多的程序员。

    首先配置文件的application标签中要添加:

    android:configChanges="locale"

    然后进入页面设置:

    //获取语言并显示

    if ((Integer) SPUtil.get("checkItem", 0) == 0) {

    //切换为简体中文

    Configuration config = getResources().getConfiguration();

    Resources resources = getResources();

    config.locale = Locale.CHINESE;

    DisplayMetrics dm = resources.getDisplayMetrics();

    resources.updateConfiguration(config, dm);

    } else if ((Integer) SPUtil.get("checkItem", 0) == 1) {

    //切换为英语

    Configuration config = getResources().getConfiguration();

    Resources resources = getResources();

    config.locale = Locale.ENGLISH;

    DisplayMetrics dm = resources.getDisplayMetrics();

    resources.updateConfiguration(config, dm);

    }

    Dialog弹窗设置:

    final String[] items = {"中文", "English"};

    AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this);

    alertBuilder.setTitle(getResources().getString(R.string.tv_language_set));

    alertBuilder.setSingleChoiceItems(items, (Integer) SPUtil.get("checkItem", 0), (dialogInterface, i) -> {

    alertDialog.dismiss();

    itemLanguage = items[i];

    if ("中文".equals(itemLanguage)) {

    SPUtil.put("checkItem", 0);

    } else if ("English".equals(itemLanguage)) {

    SPUtil.put("checkItem", 1);

    }

    changeLanguage();

    });

    alertBuilder.setNegativeButton(getResources().getString(R.string.cancel), (dialogInterface, i) -> alertDialog.dismiss());

    alertDialog = alertBuilder.create();

    alertDialog.show();

    //放在show()之后,不然有些属性是没有效果的,比如height和width

    Window dialogWindow = alertDialog.getWindow();

    WindowManager m = getWindowManager();

    Display d = m.getDefaultDisplay(); // 获取屏幕宽、高

    WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值

    // 设置宽度

    p.width = (int) (d.getWidth() * 0.95); // 宽度设置为屏幕的0.95

    p.gravity = Gravity.CENTER;//设置位置

    //p.alpha = 0.8f;//设置透明度

    dialogWindow.setAttributes(p);

    退到栈顶并重启首页:

    private void changeLanguage() {

    finish();

    Intent _Intent = new Intent(this, HomeActivity.class);

    _Intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

    startActivity(_Intent);

    //清除Activity退出和进入的动画

    overridePendingTransition(0, 0);

    }

    关键词:android,android开发,开发,之中,中英,中英文,英文,切换

    更多相关内容
  • Android中英文切换

    2017-01-12 23:43:40
    Android中实现中英文切换
  • Android APP 中英文切换

    2021-06-02 23:49:23
    实习期间,师父要求做app的中英文切换,就顺便记录了下。一、AndroidManifest.xml文件(清单文件)在每个要切换语言的Activity下面添加:android:configChanges="locale"1 3 android:configChanges="locale"4 android:...

    实习期间,师父要求做app的中英文切换,就顺便记录了下。

    一、AndroidManifest.xml文件(清单文件)

    在每个要切换语言的Activity下面添加:

    android:configChanges="locale"

    1

    3 android:configChanges="locale"

    4 android:launchMode="singleTop"

    5 android:screenOrientation="portrait"

    6 android:windowSoftInputMode="adjustPan" >

    7

    添加权限: 

    二、创建一个英文的strings.xml文件,目录名为values-en

    D9Mo8EABwy0RQAAAABJRU5ErkJggg==

    values/strings.xml这个为默认语言,如果values-en目录下的strings.xml不存在,那英文就会选取默认语言。

    1 <?xml version="1.0" encoding="utf-8"?>

    2

    3 language

    4 Settings

    5 updating..

    6

    三、核心代码

    1 /**

    2 * 刷新语言3 */

    4 public voidupdateActivity(String sta) {5

    6 //本地语言设置

    7 Locale myLocale = newLocale(sta);8 Resources res =getResources();// 获得res资源对象9 DisplayMetrics dm =res.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。10 Configuration conf =res.getConfiguration();// 获得设置对象11 conf.locale =myLocale;// 简体中文12 res.updateConfiguration(conf, dm);13 //startActivity((new Intent(this, TabActivity.class)));14 //this.finish();

    15 }

    String sta= getResources().getConfiguration().locale.getCountry()  //用于判断当前的语言

    Locale.getDefault().getLanguage()//语言:取到的比如中文为zh,英文为en,日文为ko;

    也可以调用此类

    cdec0645add3fc3c328197dda5c76203.png

    81178cc93a2a3bb5048d90d76e7ec935.png

    1 public classLanguageSettings {2

    3 private static LanguageSettings language = null;4

    5 private String currentLanguage = "zh";6

    7 privateLanguageSettings() {8 }9

    10 public staticLanguageSettings getInstance() {11 if (language == null) {12 language = newLanguageSettings();13 } else{14

    15 }16 returnlanguage;17 }18

    19 publicString getCurrentLanguage() {20 returncurrentLanguage;21 }22

    23 public voidswitchCurrentLanguage() {24 if (currentLanguage.equals("zh")) {25 currentLanguage = "en";26 } else{27 currentLanguage = "zh";28 }29 }30 }

    LanguageSettings

    1 //切换成英文

    2 if(LanguageSettings.getInstance().getCurrentLanguage()3 .equals("zh")) {4 updateActivity("en");5 LanguageSettings.getInstance().switchCurrentLanguage();6 } else{7 //切换成中文

    8 updateActivity("zh");9 LanguageSettings.getInstance().switchCurrentLanguage();10 }

    LanguageSettings.getInstance().getCurrentLanguage() 给变量动态赋值的标识列,用于判断!(采用单例模式)

    原文:http://www.cnblogs.com/tutuskys/p/4863146.html

    展开全文
  • 主要给大家介绍了关于Android AutoWrapTextView中英文排版问题的解决方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
  • Android实现中英文切换

    2021-04-12 17:00:38
    这样就添加了一个app英语的string.xml文件,将需要改变语言的text添加进去,并给适当的name,在java通过getString(R.string.name)来查找对应的text,有一个默认的strings.xml文件,这个文件是与其对应的。...

    首先添加英语对应的xml文件,在android下,res文件夹右键new->Android Resource File->local,再点击>>选择ji:Yiddish(美国国旗)->us->ok

    这样就添加了一个app英语的string.xml文件,将需要改变语言的text添加进去,并给适当的name,在java中通过getString(R.string.name)来查找对应的text,有一个默认的strings.xml文件,这个文件是与其对应的。

    默认strings.xml文件

    <resources>
        <string name="lange">语言:中文</string>
        <string name="folder_create_success">创建文件夹</string>
        <string name="folder_delete_success">删除文件夹</string>
    </resources>

    英语对应的strings.xml文件

    <resources>
        <string name="lange">Language:English</string>
        <string name="folder_create_success">Create a folder</string>
        <string name="folder_delete_success">Delete a folder</string>
    </resources>

    SPUtils类

    public class SPUtils {
    
        private static final String FILE_NAME = "muzi";
    
        public static void put(Context context, String key, Object object) {
    
            SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
                    Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = sp.edit();
    
            if (object instanceof String) {
                editor.putString(key, (String) object);
            } else if (object instanceof Integer) {
                editor.putInt(key, (Integer) object);
            } else if (object instanceof Boolean) {
                editor.putBoolean(key, (Boolean) object);
            } else if (object instanceof Float) {
                editor.putFloat(key, (Float) object);
            } else if (object instanceof Long) {
                editor.putLong(key, (Long) object);
            } else {
                editor.putString(key, object.toString());
            }
            editor.apply();
        }
    
    
    
        public static Object get(Context context, String key, Object defaultObject) {
            SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
                    Context.MODE_PRIVATE);
    
            if (defaultObject instanceof String) {
                return sp.getString(key, (String) defaultObject);
            } else if (defaultObject instanceof Integer) {
                return sp.getInt(key, (Integer) defaultObject);
            } else if (defaultObject instanceof Boolean) {
                return sp.getBoolean(key, (Boolean) defaultObject);
            } else if (defaultObject instanceof Float) {
                return sp.getFloat(key, (Float) defaultObject);
            } else if (defaultObject instanceof Long) {
                return sp.getLong(key, (Long) defaultObject);
            }
    
            return null;
        }
    
    }

    Utils类

    public class Utils {
        private static final String KEY_APP_LANGUAGE = "KEY_APP_LANGUAGE";
    
        //更改App语言
        public static void changeAppLanguage(Context context, Locale locale, boolean persistence) {
    
            Resources resources = context.getResources();
            DisplayMetrics metrics = resources.getDisplayMetrics();
            Configuration configuration = resources.getConfiguration();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                configuration.setLocale(locale);
            } else {
                configuration.locale = locale;
            }
            resources.updateConfiguration(configuration, metrics);
            if (persistence) {
                saveLanguageSetting(context, locale);
            }
        }
    
    
        public static boolean isSameWithSetting(Context context) {
            String lang = context.getResources().getConfiguration().locale.getLanguage();
            return lang.equals(getAppLanguage(context));
        }
    //    04.10 测试
    
    
        //App保存语言设置
        public static void saveLanguageSetting(Context context,Locale locale){
    
            SPUtils.put(context,KEY_APP_LANGUAGE,locale.getLanguage());
    
        }
    
        public static String getAppLanguage(Context context){
            return (String)SPUtils.get(context,KEY_APP_LANGUAGE,Locale.getDefault().getLanguage());
        }
    
    
    
        public static Locale getAppLocale(Context context){
            String lang = (String)SPUtils.get(context,KEY_APP_LANGUAGE,Locale.getDefault().getLanguage());
            if(!lang.equals(Locale.SIMPLIFIED_CHINESE.getLanguage())&&!lang.equals(Locale.US.getLanguage())){
                lang = Locale.SIMPLIFIED_CHINESE.getLanguage();
            }
            Locale locale = new Locale(lang);
            return locale;
        }
    }
    

     

    MainActivity.class

            
        private void initView()
        {
            setLange();
            bt_menu_language.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ButtonAnimation.initButton(bt_menu_language);
                    Locale appLocale = Utils.getAppLocale(MainActivity.this);
                    String appLanguage = Utils.getAppLanguage(MainActivity.this);
                    Utils.changeAppLanguage(MainActivity.this, appLocale, true); //更改app语言  布尔值为true保存进入SPUTils
                    changeLange();
                }
            });
        }
    
        public void setLange() {
            String lan = Utils.getAppLanguage(this);
            if (lan.equals("en")) {
                setLocale(Locale.US);
            } else if (lan.equals("zh")) {
                setLocale(Locale.SIMPLIFIED_CHINESE);
            }
        }
    
        private void changeLange() {
            String lan = Utils.getAppLanguage(this);
            Log.e("本地语言类型", "language=" + lan);
            if (lan.equals("zh")) {
                setLocale(Locale.US);
            } else if (lan.equals("en")) {
                setLocale(Locale.SIMPLIFIED_CHINESE);
            }
            recreate();//重新刷新
        }
    
    
        public void setLocale(Locale myLocale) {
            Resources res = getResources();
            DisplayMetrics dm = res.getDisplayMetrics();
            Configuration conf = res.getConfiguration();
            conf.locale = myLocale;
            res.updateConfiguration(conf, dm);
            Utils.saveLanguageSetting(this, myLocale);
        }

    点击按钮就能将app语言在中文与英语之间切换。

    觉得有用记得点赞加关注哦,爱您。

     

     

    展开全文
  • 安卓开发中英文切换

    2019-11-20 15:10:17
    切换中英文 首先需要中英文的string.xml 切换应用显示中文或者英文 判断当前系统语言 String language = getResources().getConfiguration().locale.getCountry(); 切换应用显示语言 if (language....

    切换中英文

    首先需要中英文的string.xml
    在这里插入图片描述

    切换应用显示中文或者英文

    判断当前系统语言

    String language = getResources().getConfiguration().locale.getCountry();
    

    切换应用显示语言

    if (language.equalsIgnoreCase("cn")) {
                Resources resources = getResources();
                Configuration config = resources.getConfiguration();
                DisplayMetrics dm = resources.getDisplayMetrics();
                config.locale = Locale.CHINA;
                resources.updateConfiguration(config, dm);
            } else {
                Resources resources = getResources();
                Configuration config = resources.getConfiguration();
                DisplayMetrics dm = resources.getDisplayMetrics();
                config.locale = Locale.US;
                resources.updateConfiguration(config, dm);
            }
    

    刷新当前页面:

    一般切换语言后想要在当前页面查看中英文切换效果

    		finish();
            Intent intent = new Intent(ChangeLaugageActivity.this, ChangeLaugageActivity.class);
            startActivity(intent);
            overridePendingTransition(0, 0);
    

    **overridePendingTransition(0,0)**去除页面切换动画

    重启app:

    一般切换语言后需要重新唤起app , 才能生效

    			killAllActivity();
                startActivity(new Intent(this, MainActivity.class));
                finish();
    

    注意:

    7.0安卓系统可以设置默认语言以及次选语言 , 而且在MyApplication下设置全局切换语言无效 , 可在全局的BaseActivity下的onCreate中进行语言设置

    展开全文
  • Android一键中英文切换

    2016-12-06 17:18:41
    Android一键中英文切换,无需activity重启,完美解决方案
  • 安卓开发 设置应用语言 中英文切换
  • 安卓开发 设置应用语言 中英文切换
  • 安卓实现中英文切换

    千次阅读 2017-11-26 11:49:18
    大家好,今天给大家分享一下中英文切换,其实不止是中英文,只是这个比较有代表性,什么语言都可以切换。 安卓里面控制语言就是新建包,在res里面新建values-zh和values-en,zh代表的是中文,en代表的是英文。把...
  • 一,实验所需图片       二,实验步骤 1.创建“手机信息页面”,即main activity,主要是展示手机页面。 如下:
  • Android 中英文切换

    千次阅读 2019-04-08 10:11:32
    看似很复杂的中英文切换其实很简单,如果在做项目的工程中,首先要看一下项目设计的功能,看看有没有中英文,不然到后面操作的时候会非常麻烦,因为,你需要把项目里的每一个字都要放在string.xml文件里面,你要是...
  • Android 中英文切换及遇到的问题背景:近期由于项目上的需求接受到了一个中英文切换需求。只需要在切换中英系统语言的时候改变app的名称为中文或英文就可以。关于如何实现这些可以参考如下文章:实现中英文切换的...
  • android开发中英文切换

    万次阅读 2016-02-14 15:51:44
    今天介绍下安卓开发下面,如何实现中英文相互切换, 一,需要在res下新建文件夹,大陆中文为values-zh-rCN,英文values-en-rUS,更多可以参考http://my.oschina.net/quttap/blog/204499,直接用values-zh,values-en也...
  • 总结: 1.Andorid studio安装AndroidLocalize插件(在...3.代码实现转换逻辑   具体步骤如下: 1.安装插件步骤省略 2.翻译文件,如下图 点击OK翻译完毕,翻译完毕之后,会出现如下图所示的文件夹 ...
  • 大家好,今天给大家分享一下中英文切换,其实不止是中英文,只是这个比较有代表性,什么语言都可以切换。 安卓里面控制语言就是新建包,在res里面新建values-zh-rCN和values-en-rUS,zh代表的是中文,en代表的是英文...
  • 今天介绍下安卓开发下面,如何实现中英文相互切换, 一,需要在res下新建文件夹,大陆中文为values-zh-rCN,英文values-en-rUS,更多可以参考http://my.oschina.net/quttap/blog/204499,直接用values-zh,values-en...
  • Android 中英文切换的实现。

    千次阅读 2017-04-16 00:22:30
    这时候就涉及了中英文切换了 前提:字符串都在string 中写两份。 一份是在 values中的strings中定义汉字 另外一份,就是你要切换的语言了。在相同的位置新建一个文件夹命名为: values-en 里面新建一个...
  • 安卓开发 设置应用语言 中英文切换.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • // 英文 config.setLayoutDirection(Locale.ENGLISH); mLanguage = "en"; country = "US"; Configure.setAppLanguage(LANGUAGE_ENGLISH); break; case LANGUAGE_DEFAULT: country = Locale.getDefault()....
  • 有的项目需要国际化,这样在语言需求方面就比较多了,所以我们需要设置语言转换,语言有很多,这里示范中英文转换。 工具:Android Studio 1、生成需要转换语种的 string.xml 文件 2、语种使用设置 3、语种转换 ...
  • config, resources.displayMetrics ) } 2、第二步:需要在Application的onCreate内调用方法: private fun initWebView() { WebView(this).destroy() } 3、以上就可以解决嵌套WebView导致国际化语言切换错乱问题。
  • Android国际化-中英文切换

    千次阅读 2021-12-29 14:45:36
    Android国际化-中英文切换

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,044
精华内容 14,417
关键字:

安卓手机中英文切换