网站建设及域名申请 厦门,网站雪花特效,阿里云服务器如何做两个网站,做网站会有侵权语种切换框架 项目地址#xff1a;Github 可以扫码下载 Demo 进行演示或者测试#xff0c;如果扫码下载不了的#xff0c;点击此处可直接下载
集成步骤
如果你的项目 Gradle 配置是在 7.0 以下#xff0c;需要在 build.gradle 文件中加入
allprojects {repositories {…语种切换框架 项目地址Github 可以扫码下载 Demo 进行演示或者测试如果扫码下载不了的点击此处可直接下载
集成步骤
如果你的项目 Gradle 配置是在 7.0 以下需要在 build.gradle 文件中加入
allprojects {repositories {// JitPack 远程仓库https://jitpack.iomaven { url https://jitpack.io }}
}
如果你的 Gradle 配置是 7.0 及以上则需要在 settings.gradle 文件中加入
dependencyResolutionManagement {repositories {// JitPack 远程仓库https://jitpack.iomaven { url https://jitpack.io }}
}
配置完远程仓库后在项目 app 模块下的 build.gradle 文件中加入远程依赖
dependencies {// 语种切换框架https://github.com/getActivity/MultiLanguagesimplementation com.github.getActivity:MultiLanguages:9.3
}
初始化框架
在 Application 中初始化框架
public final class XxxApplication extends Application {Overridepublic void onCreate() {super.onCreate();// 初始化语种切换框架MultiLanguages.init(this);}
}
重写 Application 的 attachBaseContext 方法
Override
protected void attachBaseContext(Context base) {// 绑定语种super.attachBaseContext(MultiLanguages.attach(base));
}
重写基类 BaseActivity 的 attachBaseContext 方法
Override
protected void attachBaseContext(Context newBase) {// 绑定语种super.attachBaseContext(MultiLanguages.attach(newBase));
} 只要是 Context 的子类都需要重写Service 也雷同这里不再赘述 温馨提示Fragment 不需要重写此方法因为它不是 Context 的子类
语种设置
// 设置当前的语种返回 true 表示需要重启 App
MultiLanguages.setAppLanguage(Context context, Locale locale);// 获取当前的语种
MultiLanguages.getAppLanguage(Context context);// 跟随系统语种返回 true 表示需要重启 App
MultiLanguages.clearAppLanguage(Context context);
其他 API
// 获取系统的语种
MultiLanguages.getSystemLanguage(Context context);
// 是否跟随系统的语种
MultiLanguages.isSystemLanguage(Context context);// 对比两个语言是否是同一个语种比如中文有简体和繁体英语有美式和英式
MultiLanguages.equalsLanguage(Locale locale1, Locale locale2);
// 对比两个语言是否是同一个地方的比如中国大陆用的中文简体中国台湾用的中文繁体
MultiLanguages.equalsCountry(Locale locale1, Locale locale2);// 获取某个语种下的 String
MultiLanguages.getLanguageString(Context context, Locale locale, int stringId);
// 生成某个语种下的 Resources 对象
MultiLanguages.generateLanguageResources(Context context, Locale locale);// 更新 Context 的语种
MultiLanguages.updateAppLanguage(Context context);
// 更新 Resources 的语种
MultiLanguages.updateAppLanguage(Resources resources);// 设置默认的语种越早设置越好
MultiLanguages.setDefaultLanguage(Locale locale);
语种变化监听器
// 设置语种变化监听器
MultiLanguages.setOnLanguageListener(new OnLanguageListener() {Overridepublic void onAppLocaleChange(Locale oldLocale, Locale newLocale) {Log.d(MultiLanguages, 监听到应用切换了语种旧语种 oldLocale 新语种 newLocale);}Overridepublic void onSystemLocaleChange(Locale oldLocale, Locale newLocale) {Log.d(MultiLanguages, 监听到系统切换了语种旧语种 oldLocale 新语种 newLocale 是否跟随系统 MultiLanguages.isSystemLanguage());}
});
使用案例
Override
public void onClick(View v) {// 是否需要重启boolean restart;switch (v.getId()) {// 跟随系统case R.id.btn_language_auto:restart MultiLanguages.clearAppLanguage(this);break;// 简体中文case R.id.btn_language_cn:restart MultiLanguages.setAppLanguage(this, LocaleContract.getSimplifiedChineseLocale());break;// 繁体中文case R.id.btn_language_tw:restart MultiLanguages.setAppLanguage(this, LocaleContract.getTraditionalChineseLocale());break;// 英语case R.id.btn_language_en:restart MultiLanguages.setAppLanguage(this, LocaleContract.getEnglishLocale());break;default:restart false;break;}if (restart) {// 我们可以充分运用 Activity 跳转动画在跳转的时候设置一个渐变的效果startActivity(new Intent(this, LanguageActivity.class));overridePendingTransition(R.anim.activity_alpha_in, R.anim.activity_alpha_out);finish();}
}
框架混淆规则
在混淆规则文件 proguard-rules.pro 中加入
-keep class com.hjq.language.** {*;}常见疑问请点击此处查看
其他资源语言代码列表大全
作者的其他开源项目 安卓技术中台AndroidProject 安卓技术中台 Kt 版AndroidProject-Kotlin 权限框架XXPermissions 吐司框架Toaster 网络框架EasyHttp 标题栏框架TitleBar 悬浮窗框架EasyWindow Shape 框架ShapeView Gson 解析容错GsonFactory 日志查看框架Logcat Android 版本适配AndroidVersionAdapter Android 代码规范AndroidCodeStandard Android 资源大汇总AndroidIndex Android 开源排行榜AndroidGithubBoss Studio 精品插件StudioPlugins 表情包大集合EmojiPackage AI 资源大汇总AiIndex 省市区 Json 数据ProvinceJson Markdown 语法文档MarkdownDoc