1.今天在修改framwork中的代码的时候,需要把自己在代码中写的一个#ffffff,变成在xml中引用的变量。具体操作方法如下

1)在

frameworks/base/core/res/res/values

文件夹下的funui_colors.xml 中,设定color值

</resource>
<color name="oos_power_off_text_color_off_funui">#4cffffff</color>
<color name="oos_power_off_text_color_on_funui">#603cffef</color>
</resources>

2)直接在xml中引用

frameworks/base/core/res/res/layout

下的oos_global_actions_normal.xml 引用

<TextView
android:layout_width="70dp"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="14sp"
android:textColor="@color/oos_power_off_text_color_off_funui"
android:fadingEdge="none"
android:layout_below="@+id/oos_apmode"
android:layout_toLeftOf="@+id/oos_empty"
android:paddingTop="15dp"
android:gravity="center"
android:text="@string/global_actions_toggle_airplane_mode"
android:id="@+android:id/oos_apmode_title"/>

这些都是没有任何问题的

接下来,当我尝试在代码中使用的时候

import com.android.internal.R;

mViewOnTextColor = mContext.getResources().getColor(R.color.oos_power_off_text_color_off_funui);
mViewOffTextColor = mContext.getResources().getColor(R.color.oos_power_off_text_color_on_funui);

却一直提示说,找不到资源,后来才知道,如果你在framwork中添加了一个变量,而在其他路径下需要使用的时候,这时候你必须要进行注册

注册方法如下

frameworks/base/core/res/res/values

下文件 symbols.xml

<resource>
<java-symbol type="color" name="oos_power_off_text_color_off_funui" />
<java-symbol type="color" name="oos_power_off_text_color_on_funui" />
</resources>

这时候就可以了。

顺便有两点要注意下

1)就是这个关于R资源的介绍

我们知道,如果在eclipse下创建项目,我们设置的变量会自动在gen目录下的R.java文件中创建id。其实,在源码下,也有一个地方专门创建R文件,它的目录为

out/target/common/R

它下面的文件夹就是各个模块下的R文件。而我们的framwork下的文件,就是在

out/target/common/R/com/android/internal 

2)今天虽然成功增加了symbol,但是,编译的时候还是一直报错。后来才发现,有时候你更改了framework,最好是吧这个文件下的几个模块都编译一下

framework  SystemUI   android.policy

color-在framwork中添加属性变量的更多相关文章

  1. pycharm中添加PATH变量

    最近在pycharm中run程序,终端terminal没有问题,在pycharm找不到$PATH中的变量值,如下图所示 同样的命令,在终端敲就没毛病,终端echo $PATH的时候,显示的是有cuda ...

  2. category类别中添加属性

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c91b13 } p.p2 { margin: 0.0px 0. ...

  3. category中添加属性的简单方式

    一.概念扩充: 1.如我们所知,使用category是用来对现有类进行功能扩展,或者将类分成多模块的一种方式.由声明和实现两部分组成.可以单独写成Objiective-C File类型文件(包含.h和 ...

  4. js 向数组对象中添加属性和属性值

    let resultList = [{"name":"a1"},{"name":"b1"}] resultList.fo ...

  5. Bukkit编程之动态向yml文件中添加属性

    yaml = new Yaml(); String goods = args[0]; String goodsNum = args[1]; YamlConfiguration yc = new Yam ...

  6. Android4.0.4-在build.prop中添加属性的方法【转】

    本文转载自:http://blog.csdn.net/imyfriend/article/details/8939964 1.在*.rc文件中用setprop添加,例如在源码android4.0\sy ...

  7. mac中添加环境变量

    sudo vi /etc/paths 来编辑 paths,将环境变量添加到 paths 中. vim 是一个编辑器,另外还有几个,如:Pico,Emacs.  

  8. python中添加环境变量

    import sys sys.path 系统环境是一个list,可以将自己需要的库添加进入,例如mysql库,hive库等等.有三种方式添加,均验证通过:     1 临时添加,在一个shell窗口中 ...

  9. 在sql语句中添加php变量

    在sql语句中使用{}将php变量扩起来,php就会解析{}中的内容. //案件统计 function getCount($dsql,$tableName,$year){ //诉讼案件总数,总金额 $ ...

随机推荐

  1. Linux安全应用之防垃圾邮件服务器的构建

    Linux安全应用之防垃圾邮件服务器的构建 一.垃圾邮件产生的原因 垃圾邮件(SPAM) 也称作UCE(Unsoticited Commercial Email.未经许可的商业电子邮件)或UBE(Un ...

  2. 分享一下js正则中惰性与贪婪

    首先引入一个介绍比较详细的网站 http://www.cnblogs.com/yuaima/p/5258513.html http://www.jb51.net/article/31491.htm 接 ...

  3. 手把手教你在VMware虚拟机中安装Ubuntu14.04系统

    在VMware中创建完虚拟机之后,一般需要给虚拟机安装系统,比较受青睐的系统有Ubuntu和Centos,关于Centos系统的安装之前已经写过了,感兴趣的小伙伴可以戳这篇文章:靠谱的centos7. ...

  4. codeforces 140E.New Year Garland

    传送门: 解题思路: 要求相邻两行小球颜色集合不同,并且限制行内小球相邻不同. 由此可得:每行小球排列都是独立与外界的, 所以答案应该是对于所有行的颜色集合分类,在将行内的答案乘到上面. 先考虑如何分 ...

  5. BZOJ1194: [HNOI2006]潘多拉的盒子(tarjan)

    Description 传说中,有个神奇的潘多拉宝盒.如果谁能打开,便可以拥有幸福.财富.爱情.可是直到真的打开,才发现与之 相随的还有灾难.不幸.其实,在潘多拉制造这个宝盒的时候,设置了一些咒语来封 ...

  6. 测试理论--web测试方法总结

    一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号.禁止直接输入特殊字符时,使 ...

  7. Android 採用HTML设计界面

    由于Android软件开发分工眼下还没有细化,程序猿往往须要负责软件界面的开发,尽管软件的界面图片已经由美工设计好了.可是假设使用layout技术把软件做成美丽的界面确实非常困难,而是也比較耗时.An ...

  8. asp.net 站点在Apache下的配置,就这么简单

    asp.net 站点在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...

  9. 14.字符串hash寻找第一个只出现一次的字符

    //char 0-255一共256个 char getonebyhash(char *str) { if (str == NULL) { return '\0'; } char ch = '\0'; ...

  10. C# WinForm设置透明

    1:通过设置窗体的 TransparencyKey实现  例:窗体中的白色会变成透明      this.BackColor =Color.White; this.TransparencyKey = ...