[学习] android 前景色和颜色含义

2021-03-12  本文已影响0人  吴敬悦

1. 前景色

一直我都不明白前景色,今天来学习。说到前景色一定要会说到背景颜色,背景颜色很常见。

尝试说说背景颜色,一般在画画中,找到一张白色的纸,然后我们在上面画画,这张白色的纸,就是背景颜色,我们画到上面的会覆盖背景颜色,比如我们要在这张白色纸上画一片天空,天空是蓝色,等画完我们就会发现原来白色的纸都变蓝了;总的来说背景颜色就是指本来的颜色,我们如果要在上面修饰,修饰物就会遮挡背景颜色。


背景颜色示例

其实很容易发现,其实背景颜色并不是绝对的,也就是一张图中可以有很多背景颜色,并不是只能有一个。

而前景颜色相当于一张遮布,无论里面有啥都会变成前景颜色;如果前景颜色完成透明,就相当于没有了前景颜色;前景颜色也只是相对的,人的肉眼一般只能看到一层“前景颜色”,如果全部“全景颜色”都是透明的,那么人眼一层也看不到;在 react-nativeopacity 就是前景颜色,是一个白色的前景颜色,所以当我们设置为 0 的时候就会看到全是白色,当设置 1 的时候就会完全透明。

2. xml 中的颜色值含义

对比学习,通过 react-native 来学习 android ,这样可以帮助消化新知识,但同样会带有新的问题,那就是容易忽略细节,或者说是本来面目。比如说如果你发现有两样表象相同,就很容易出现这两个就是一个东西的概念,比如上面我说的 opacity ,其实我并没有看底层实现,只是根据现象做出的结论。
我记得读书那会儿,当我第一次遇到需要证明结合律,证明: (a + b) + c = a + (b + c) ,我觉得很惊讶,因为我觉得本来就是这样,还需要证明嘛。其实不然,任何新东西都应该证明,不能用已有的结论直接放到新的理论下。
学习二进制的时候,我们都是以十进制为主,只要是跟数字打交道都会经过十进制。学习英语的时候总是翻译成汉语在翻译成英语;之所以出现这样的原因,是因为环境都是这样的,出的题也都是这样的。与其说我们跳不出这个怪圈,不如说大家都跳不出。
现在回主题:

  1. 先使用对比的方式学习:在 react-native 中颜色值我一般使用 rgbrrggbbrgba 这三种方式,也就是:
// #ff0000 红色
// #0f0 绿色
// rgba(0, 0, 255, 1) 蓝色

而在 android 开发中,则是下面:

// #ff0000 红色
// #0f0 绿色
// #ff0000ff 蓝色 

其中第一个的颜色对应为: rrggbb ,第二个颜色对应为: rgb ,第三个颜色对应为: aarrggbb 。由于之前都是使用 rrggbb 的形式,所以我就以为跟 react-native 一样,而且这个还不是一模一样的,我都理解 #ff0000ffrrggbbaa 的形式,但实际情况并不是这样,而是 aarrggbb

  1. 使用 android 的方式
    其实由于我先学习 react-native ,所以对于我来说是困难的;但我想到了一种方式,那就是使用从颜色含义下手,也就是我开始学习 react-native 时怎样学习的颜色值;比如我会去了解 react-native 各个颜色符号代表的含义,比如 #ff0000 ,颜色分别为红绿蓝组成,每一个颜色值使用十六进制表示,范围为: 00-ff

其实即便这样也会发现,我也在站在 react-native 的基础上进行的;所以在前期这种方式一般是避免不了的,我把这种学习方法叫参考学习法。这种方式其实在刚接触的时候可以降低学习成本,如果跨度太大,那么可能一起步就会发现不一样,这个时候容易产生抵触,当遇到这种情况应该赶快跳出原来的思维方式,从新面对。

上一篇下一篇

猜你喜欢

热点阅读