IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> APP国际化、动态设置控件颜色(APP个性化) -> 正文阅读

[移动开发]APP国际化、动态设置控件颜色(APP个性化)

亲身体验:某些时候QQ音乐首页整体都成灰色,艾玛,BUG!!!,截图反馈。只有首页,其他的界面没问题,好家伙,故意的!

确实,今天咱也来搞一下,这篇文章主要记录项目
 1. 国际化
 2. 动态设置控件颜色(APP内深色等其他颜色功能)
 3. APP界面灰色
 的代码层面和浅层解释

1.国际化

这里所说的国际化是指APP可以在中文和其他文字之间的切换,界面样式是一样的,只是里面的文字改变,当然这是一种节约成本的做法,正常情况下一个中文版,一个英文版才对,因为国内外APP的某些使用习惯是有区别的。

  1. 创建其他语言的 values,默认就是中文的,所以不用新创建了
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 每个 values 下都要有相同的 name 和对应的文字,要不然会有红错错哦
    在这里插入图片描述
    在这里插入图片描述

  3. 这样以后APP里面用到文字的地方就不要直接写文字了,通过这个 String 引用才行哦
    在这里插入图片描述

  4. 在代码里动态改变当前APP系统默认选择的 values 文件

在这里插入图片描述

  // 获得res资源对象
        Resources resources = getResources();
        Configuration config = resources.getConfiguration();
        // 获得屏幕参数:主要是分辨率,像素等。
        DisplayMetrics dm = resources.getDisplayMetrics();
        config.locale = Locale.ENGLISH; //修改后面这个参数
        resources.updateConfiguration(config, dm);

这个参数里面就是各种语言,与我们创建的 values相关联

在这里插入图片描述
5. 修改好了之后不会立即生效,要重启一下

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

当然,正常通过 通过 SharedPreferences 存储下次使用就行了,这里注意!每次重启之后会有一个问题 Android国际化切换语言之后,首次进入界面无语言切换效果 ,这样国际化就完成了。

2. 动态设置控件颜色(APP内深色等其他颜色功能)

这边看起来比较高大上,其实没啥含量,就是通过 name 的形式去动态获取资源,然后进行赋值、操作

在这里插入图片描述

 int id= getApplication().getResources().getIdentifier(name, "color",getApplication().getPackageName());
 String s =  getApplication().getString(id);

因为 name 为String类型的,所以就可以灵活使用了,但是颜色设置里面需要设置两个对应颜色了,这是不可避免的

在这里插入图片描述

要想动态去给控件设置颜色,那肯定实在代码里设置了
在这里插入图片描述
当切换相应效果下,你根据这个判断去进行不同的赋值操作,没错,这样需要把每个控件都拿出来设置一下,当然你也可以把控件存储起来统一管理

这只是一种方式 - 对控件进行操作;还有一种方式就是对布局管理,写两个布局,名字与这个类似,不同效果下使用不同的布局,这样会出现一个问题,部分控件切换后不会直接改变,需要退出重新,还是需要动态设置一下。

3. APP界面灰色

这就比较简单了,是我从网上摘抄的

Paint paint = new Paint();
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0);// 0-灰色、1-正常颜色
paint.setColorFilter(new ColorMatrixColorFilter(matrix));
getWindow().getDecorView().setLayerType(View.LAYER_TYPE_HARDWARE, paint);
//如果页面有webView,需加上下面代码
//webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

通过 setSaturation(),进行设置,正常情况下,可以通过接口返回进行灵活管理

完结,撒花!

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:13:15  更:2022-04-01 00:13:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 20:11:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码