亲身体验:某些时候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(),进行设置,正常情况下,可以通过接口返回进行灵活管理

完结,撒花!

APP国际化、动态设置控件颜色(APP个性化)相关推荐

  1. Android动态设置控件宽高和padding

    在开发过程中我们经常需要动态设置控件的宽高和padding.以TextView为例.如下: 布局代码 TextView的默认宽高为包裹文字,添加了一个背景颜色设置参数后更直观看到效果 <?xml ...

  2. android 动态设置padding,Android动态设置控件大小以及设定margin以及padding值

    http://www.aichengxu.com/Java/73893.htm Android动态设置控件大小以及设定margin以及padding值,有需要的朋友可以参考下. 一.概述 在andro ...

  3. Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小

    Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小 1 动态获取手机屏幕的 屏幕密度与对应像素比例 例如在 320 * 480 尺寸为 3.2 英寸的手机 ,对应的像素密度 ...

  4. Android获取屏幕宽度高度并动态设置控件宽度,比例等

    1.Android获取屏幕宽度的几种方法: //1.通过WindowManager获取DisplayMetrics dm = new DisplayMetrics();int heigth = dm. ...

  5. 如何动态设置控件的宽高度?

    2019独角兽企业重金招聘Python工程师标准>>> 如何动态地控制控件的宽高度呢?如下面的例子所示: llShowCheckBtn = (LinearLayout) findVi ...

  6. 动态设置控件的宽度(width)

    1.有一个项目,需要动态添加标签(button),一个或者两个button,当固定div大小时,如果只放一个button就会有很多空白,看起来不太好,因此需要动态改变div的width自动调整宽度. ...

  7. 动态获取手机屏幕宽高及动态设置控件宽高

    1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetr ...

  8. android安卓动态设置控件宽高

    LayoutParams layoutParams=p_w_picpathView.getLayoutParams(); layoutParams.width=100; layoutParams.he ...

  9. android 动态设置控件的大小

    TextView textView: ViewGroup.LayoutParams lp = textView.getLayoutParams(); lp.width = ViewGroup.Layo ...

最新文章

  1. excel html modify,在Excel 2010中修改Series对象上的Z-index(Modify Z-index on Series object in Excel 2010)...
  2. 寻找实力高手长期合作
  3. 计算机系统不能更改,电脑系统时间怎么设定不能修改
  4. 【BZOJ1880】[Sdoi2009]Elaxia的路线 最短路+DP
  5. mysql 聚簇索引和非聚簇索引_MySQL 聚簇索引 二级索引 辅助索引(上两期中奖名单)...
  6. mysql数据库 day06
  7. Ubuntu下替换软件列表
  8. oCam(屏幕录制) 一款小巧方便的专业屏幕录制软件 彻底解决你的录屏问题
  9. PCWorld:火狐浏览器已宣告死亡【转】
  10. 微pe添加菜单装linux,微PE WEPEMENU.INI CDLINUX BEINI 启动菜单
  11. server2008服务器进不了桌面,解决windows server 2008 r2 登录进入桌面只显示一片蓝色背景...
  12. SQL语句中查询数据
  13. echarts饼状图显示百分比
  14. linux宝塔面板是什么,宝塔面板是什么
  15. EXCEL表格复制到空白的EXCEL表格变形 解决方法
  16. 鸿蒙应用开发学习1——应用完整开发流程
  17. 她们不止“都挺好”自带”苏明玉“光环的美联人
  18. ARM DS-5 Development Studio 5.28.1 破解激活教程
  19. 怎么用计算机弹心如水止,心静如水, 怎样用心看自己
  20. mysql表date类型长度_mysql中数据类型的长度解释

热门文章

  1. 不存私心天地间——“老召时空”2015年贺岁篇
  2. 我的HTML学习------表格的基本使用
  3. HTML学习笔记4:如何给网页添加图片和超链接
  4. linux设备驱动归纳总结(十):1.udevmisc
  5. Linksys WRT54G 路由器溢出漏洞分析—— 运行环境修复
  6. 射击类游戏--射击辅助线的实现
  7. Mysql 分组查询取max 那条记录其他字段
  8. 【机器学习】Python秘密武器之Numpy
  9. 设计一款给爸爸妈妈用的手机
  10. 不懂量子力学?那你可以试试在家里做这五个实验!