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)
  • 相关阅读:
    [Noip2016]天天爱跑步
    [ioi2008]Island 岛屿
    [Poi2012]Rendezvous
    RCTF2019 next_php
    WinSocket编程笔记(五)
    PTA的Python练习题(二十一)
    WinSocket编程笔记(四)
    PTA的Python练习题(二十)
    WinSocket编程笔记(三)
    WinSocket编程笔记(二)
  • 原文地址:https://www.cnblogs.com/gangmiangongjue/p/4798428.html
Copyright © 2011-2022 走看看