Android 对资源文件的优化
2016-03-16 11:14
330 查看
最近在项目中发现一个Android对colors.xml中资源优化的事实。
因为项目中很多地方使用同一个颜色资源:
因业务需要,在某一处,需要对一个使用了该颜色作背景(android:background=”@color/blue”)的布局的透明度进行动态设置,使用如下方法:
通过该方法实现了对该布局透明度的动态设置,但是却出现了另一个问题,在应用中所有使用了该颜色的地方,其透明度均发生了同样的变化,然后试着在colors.xml文件中新增另一个色值一样,但命名不同的颜色资源替代:
但在测试中发现,其结果与原来并无不同,顾猜测Android对色值一样的颜色资源做了优化处理,多个不同名称但色值一样的颜色资源都是同一个对象。
最后解决这个问题,用了一个简单的方法,定义一个色值相近的颜色使用即可:
因为项目中很多地方使用同一个颜色资源:
<color name="blue">#2d9fff</color>
因业务需要,在某一处,需要对一个使用了该颜色作背景(android:background=”@color/blue”)的布局的透明度进行动态设置,使用如下方法:
xxx.getBackground().setAlpha(x);
通过该方法实现了对该布局透明度的动态设置,但是却出现了另一个问题,在应用中所有使用了该颜色的地方,其透明度均发生了同样的变化,然后试着在colors.xml文件中新增另一个色值一样,但命名不同的颜色资源替代:
<color name="blue">#2d9fff</color> <!-- 新增资源 --> <color name="translucent_blue">#2d9fff</color>
但在测试中发现,其结果与原来并无不同,顾猜测Android对色值一样的颜色资源做了优化处理,多个不同名称但色值一样的颜色资源都是同一个对象。
最后解决这个问题,用了一个简单的方法,定义一个色值相近的颜色使用即可:
<color name="blue">#2d9fff</color> <!-- 新增资源 --> <color name="translucent_blue">#2d8fff</color>
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories