zoukankan      html  css  js  c++  java
  • android如何使用资源文件定义的颜色

    讲到使用资源文件,必然有两种方式,一种是在xml中引用,一种是在代码里引用。

    例如:我们在xml中定义了如下两种颜色,在xml文件中引用的话,很简单的,使用@color/drakblue即可。

    <resources>
        <color name="weakyellow">#ee9c16</color>
        <color name="darkblue">#445f74</color>
    </resources>

    但是如果在代码中引用呢?

    我是相当长一段时间没有在代码中引用过资源文件了,今天偶尔引用一下,竟然试了好一段时间,才把颜色调正常。

    最开始我是这样定义的:

    colors = new Integer[]{Color.CYAN,Color.DKGRAY,Color.BLUE,Color.GREEN,Color.LTGRAY,Color.MAGENTA,Color.BLACK,Color.RED,Color.YELLOW,Color.WHITE,R.color.weakyellow,R.color.darkblue};

    其中前面用的是系统自带的color,因为系统本身就提供了10种颜色,到第11种和12种时候,只能自己定义了,于是出现了前边我定义的那两种颜色,写数组的时候,顺其自然的模仿前面的形式来了个:

    R.clor.darkblue

    看上去形式还蛮搭,测试的时候发现无论怎样,后两个颜色显示的都是一种纯色,完全跟我定义的无关。

    怎么能这样定义呢?完全是忘了基本概念,“R.clor.darkblue”是什么意思?同学们?
    它代表的是资源值,每个resources里边的内容都会在R文件中生成一个唯一的ID值,这跟颜色毫无关系!
    再举个例子,使用
    textView.setText(R.string.me)

    这样对么?里边是int值,哪里是你要的string哟!

    好了,正确的方法应该是耳熟能详的这样子滴。。。拜拜~

    colors = new Integer[]{Color.CYAN,Color.DKGRAY,Color.BLUE,Color.GREEN,Color.LTGRAY,Color.MAGENTA,Color.BLACK,Color.RED,Color.YELLOW,Color.WHITE,getResources().getColor(R.color.weakyellow),getResources().getColor(R.color.darkblue)};
    getResources().getColor(R.color.darkblue)
  • 相关阅读:
    MT【126】点对个数两题之二【图论】
    MT【125】四点共圆
    MT【124】利用柯西求最值
    MT【123】利用第一次的技巧
    MT【122】一个重要的不平凡的无穷级数
    MT【121】耐克数列的估计
    MT【120】保三角函数
    MT【119】关于恒成立的一道压轴题
    计算机视觉目标检测的框架与过程
    使用模板类导致error LNK2019: 无法解析的外部符号
  • 原文地址:https://www.cnblogs.com/gangmiangongjue/p/4798428.html
Copyright © 2011-2022 走看看