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. 关于vue中的语法糖v-model

    开发src-在线系统的过程中,封装了很多组件,如Dialog prompt等,在开源项目的组件中这些组件使用v-model来控制显示,我来总结一下关于自己学习到的v-model知识 1. 使用prop ...

  2. Can’t connect to local MySQL server through socket ‘/tmp/mysql/mysql.sock’解决方法

    原因在于/tmp/mysql/mysql.sock不存在,为/usr/local/mysql/mysql.sock建立一个软连接到/tmp/mysql/mysql.sock即可. ln -s /usr ...

  3. 威联通NAS 网站无法登录,可以ssh情况下重启设备方法

    步骤: 1.VPN登录NAS 2.PUTTY SSH登录设备 3.reboot设备 等待重启约5分钟.

  4. ZOJ 2532 Internship

    Internship Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on ZJU. Original ID: ...

  5. jvm 性能分析

    VM本身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代的数据.JVM当前所有线程及其栈相关信息等等.各种JDK自带的剖析工具,包括jps.jstack.ji ...

  6. AngularJS实现cookie跨域

    前后端分离被越来越多的公司重视利用.然后带来的最棘手的问题就是.用户信息应怎样保存. 一.场景描写叙述 以Java为后台,AngluarJS做前端为例进行描写叙述:当用户在界面登录时.需把用户信息(如 ...

  7. P2P进入整顿期,平衡风险和收益之间的矛盾是关键

        毫无疑问,P2P网贷进入了其诞生以来最为关键的整顿期,随着大量提现困难.跑路的P2P平台被曝光之后.行业对P2P网贷的发展也多了几分慎重.少了几分浮躁.只是,P2P网贷所面临的问题正是其它不论 ...

  8. Vue v-if v-for v-bind v-on

    v-if <div v-if="type === 'A'"> A </div> <div v-else-if="type === 'B'&q ...

  9. Socket编程中的强制关闭与优雅关闭及相关socket选项

    以下描述主要是针对windows平台下的TCP socket而言. 首先需要区分一下关闭socket和关闭TCP连接的区别,关闭TCP连接是指TCP协议层的东西,就是两个TCP端之间交换了一些协议包( ...

  10. javaweb二

    除了servlet规范,还有filter,listener.filter和servlet相似,但是在servlet之前执行,主要区别是有一个FilterChain接口可以执行拦截方法. import ...