App颜色统一编程技巧

 


我们在开发 ios 与 android的时候,关于颜色这个小问题影响还是很大的,这里面涉及到多个人ios开发者、android开发者、美工mm、web app 开发者的工作。

 Ios 的 ARGB模式,android 的 hex(16进制,通常我叫他html颜色模式。html里面也有ARGB,但hex用的多些l)

哪有没有一种很好的方式统一ios 与 android的颜色方案呢。减少ARGB 与 hex之间的转化呢。至少从代码上看起来一样。


我个人喜欢hex(16进制的颜色),加之android很多地方都是hex的颜色体系。那就上ios拥有hex便利吧



- (UIColor *) h2c:(NSUInteger)hex{  

    NSUInteger red = (hex & 0x00ff0000) >> 16;

    NSUInteger green = (hex & 0x0000ff00) >> 8;

    NSUInteger blue = (hex & 0x000000ff);

    NSUInteger alpha = (hex >> 24);                         

    UIColor *c = [UIColorcolorWithRed:red/255.0fgreen:green/255.0fblue:blue/255.0falpha:alpha/255.0f];

    return c;

}

代码很少吧,但很方便。这段代码可以为  UIColor 写一个类目,也可以写到自己的公共工具类里面。以下为使用方式。    

调用方式:   

    UIView * v = [[UIViewalloc] init];

    v.backgroundColor = [self h2c:0xffff0000];


是不是很方便,从此妈妈不用担心我 ios 与 android 关于颜色这个问题了。 美工mm也很赞同,网页开发者也很满意。



最后说明一下,16进制颜色的存储原理,这很重要哦。

16进制颜色刚好是4字节,一个无符号的整型大小。哪怎么映射成ARGB的呢,

就拿上面列子用到的 0xffff0000,为红色


这个颜色存储结构:

第1-2位(从左到右)ff为透明度,对应与10进制的(0-255)也对应与ARGB中的A;

3-4位(从左到右)ff对应与ARGB中的R(红),对应与10进制的(0-255);

5-6位(从左到右)ff对应与ARGB中的G(绿),对应与10进制的(0-255);

第7-8位(从左到右)ff对应与ARGB中的B(蓝),对应与10进制的(0-255)



这下明白了吧,快快这样使用吧。ios,android,美工,网页等都在一个统一的模式里面。



以上是本人的抛砖引玉。欢迎拍砖。









  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值