Android/iOS及设计中ARGB颜色值百分比透明度换算
设计上经常要求对一个颜色值进行一定百分比的透明度,比如给定一个颜色0xFF0000FF(蓝色)要求80%透明,该如何处理呢?80%透明的蓝色值是多少呢?
常见的颜色是RGB表示的,就比如上面的蓝色0xFF0000FF,这个颜色值是16进制表示的,其中0x后面接着的两个16进制数字‘FF’就是ARGB中的‘A’,即alpha。A表示该颜色的不透明度。
A = 00(转为十进制是0)是完全透明;A = FF(转换为十进制是255)是完全不透明。
接着到的后面的每两位表示一个颜色,RGB(R,red;G,green;B,blue)。A值控制着对后面颜色的透明度处理。
计算机中表示颜色的透明度范围是(0 ~ 255,即16进制的00-FF)。0(00)表示完全透明。255(FF)表示完全不透明。
其实透明和不透明是一个硬币的两面,描述的都是一回事。比如说把一个颜色透明80%,换一个角度说是把这个颜色不透明20%。
假设设计要求对某一个颜色的透明80%,也就是说不透明度20% ( 1 - 80% = 20% ),那么就是255 x 20% = 51。51是十进制数字,转为十六进制表示是:33。
此时就可以直接用ARGB表示80%透明后的此种颜色值为:
0x33xxxxxx (最后面的6位即RGB值)
此时,如果是在Android里面,就可以直接把这个颜色值写到xml布局里面,达到透明80%的设计要求。
但是有时候,你可能只能拿到一个具体的int整数型颜色值比如:0xFF0000FF ,没法手动设置0x后面的两位十六进制的不透明度控制值。可现在又要求你在代码运行时动态的对该颜色值进行80%的透明度换算,那怎么办?此时可通过&与运算获得。
比如,已知80%透明度的十六进制值是33。那么就让原始颜色值和0x33FFFFFF(即0x33拼接六位FFFFFF)进行&与运算,例如:
int oldColor = 0xFF0000FF; //原始颜色
int newColor = oldColor & 0x33FFFFFF;
此时获得的动态计算结果newColor就是80%透明后的颜色值。
下面是一些常见的透明度16进制表,有了此表,基本可以满足常见的透明渐变颜色处理,不管是动态的还是静态的,静态的就在原始颜色前加上表中的十六进制值,如果是动态的,就按上面说的&与运算获得:
透明度 16进制值
100% 00
95% 0D
90% 1A
85% 26
80% 33
75% 40
70% 4D
65% 59
60% 66
55% 73
50% 80
45% 8C
40% 99
35% A6
30% B3
25% BF
20% CC
15% D9
10% E6
5% F2
0% FF

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Android NestedScrollView/ScrollView包裹ViewPager自适应高度
Android NestedScrollView/ScrollView包裹ViewPager自适应高度 当Android的NestedScrollView/ScrollView这类滚动View包裹ViewPager时候,ViewPager中的Fragment包含的又是一系列高度值不固定的View如RecyclerView等等,就会造成ViewPager高度无法自适应子Fragment里面的View的高度,解决方法其中之一就是重新改造ViewPager,让其能自动适应子Fragment里面的View高度,改造后的AutofitHeightViewPager: import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import java.util.Has...
-
下一篇
安卓运动圆环自定义View
运动圆环自定义View.gif 记得这个东西原来有个同事问过我,当时正在自学自定义View和属性动画这一块,对这个功能也没有写过,所以就google了一下,发了几个类似效果的github项目给朋友,今天礼拜天难得有心情写写代码,所以想想实现一下这个自定义View的效果。 首先,我们从这个gif的效果图中就可以得知这个自定义View我们需要哪些自定义属性,内部圆环的颜色、外部圆环的颜色、圆环的宽度、字体的大小、颜色,话不多说,直接撸码。 <!-- 运动圆环自定义属性 --> <declare-styleable name="MotionCrcle"> <attr name="outerCrcleColor" format="color"></attr> <attr name="innerCrcleColor" format="color"></attr> <attr name="crcleTextColor" format="color"></attr> <attr name="crcl...
相关文章
文章评论
共有0条评论来说两句吧...