• 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)
  • 相关阅读:
    用textfield制作richTextEdit
    鼠标手势替换闪烁不停地问题
    怎样在FlexBuilder中使用FlashCS中的组件[翻译]
    一个可以减少代码输入量的用法
    使用Flex library project
    初级程序员进步的几个标志
    给flashBuilder整几个快捷键
    在纯AS工程中嵌入个别字体方法
    软件设计中应重视的非技术因素
    ASP.NET MVC 2.0 Html.RenderPartial & Html.RenderAction
  • 原文地址:https://www.cnblogs.com/gangmiangongjue/p/4798428.html
Copyright © 2020-2023  润新知