Update 颜色.md
This commit is contained in:
37
问题/颜色/颜色.md
37
问题/颜色/颜色.md
@@ -19,17 +19,19 @@ A 从ox00到oxff表示从透明到不透明。
|
||||
|
||||
RGB 从0x00到0xff表示颜色从浅到深。
|
||||
|
||||
## 二.几种创建或表示颜色的方式
|
||||
### 1.使用Color类创建颜色
|
||||
## 二.几种创建或使用颜色的方式
|
||||
### 1.java中定义颜色
|
||||
``` java
|
||||
int color = Color.GRAY; //灰色
|
||||
```
|
||||
由于Color类提供的颜色仅为有限的几个,通常还是用ARGB值进行表示。
|
||||
``` java
|
||||
int color = Color.argb(127, 255, 0, 0); //半透明红色
|
||||
|
||||
int color = 0xaaff0000; //带有透明度的红色
|
||||
```
|
||||
### 2.在xml文件中定义颜色
|
||||
在/res/values/color.xml 文件中如下定义
|
||||
在/res/values/color.xml 文件中如下定义:
|
||||
``` xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
@@ -40,9 +42,30 @@ RGB 从0x00到0xff表示颜色从浅到深。
|
||||
详解: 在以上xml文件中定义了两个颜色,红色和蓝色,是没有alpha(透明)通道的。
|
||||
|
||||
定义颜色以‘#’开头,后面跟十六进制的值,有如下几种定义方式:
|
||||
``` java
|
||||
#f00 //低精度 - 不带透明通道红色
|
||||
#af00 //低精度 - 带透明通道红色
|
||||
|
||||
#ff0000 //高精度 - 不带透明通道红色
|
||||
#aaff0000 //高精度 - 带透明通道红色
|
||||
```
|
||||
#f00
|
||||
#af00
|
||||
#ff0000
|
||||
#aaff0000
|
||||
其中用<i>一个十六进制数值表示一种颜色</i>的<b>低精度</b>不常用,最常用的是<i>两个十六进制的数值表示一个颜色</i>的<b>高精度</b>。
|
||||
|
||||
### 3.引用在xml文件中定义的颜色
|
||||
#### 1.在java文件中引用:
|
||||
``` java
|
||||
int color = getResources().getColor(R.color.mycolor);
|
||||
```
|
||||
#### 2.在其他xml文件(layout或style)中引用或者直接创建
|
||||
```
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<item name="colorPrimary">@color/red</item>
|
||||
</style>
|
||||
```
|
||||
``` java
|
||||
android:background="@color/red" //引用在/res/values/color.xml 中定义的颜色
|
||||
|
||||
android:background="#ff0000" //创建颜色
|
||||
```
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user