资讯专栏INFORMATION COLUMN

聊聊Color中的alpha值

sixleaves / 3323人阅读

摘要:序本文主要介绍下对象中的值。里头的不指定的话,默认其值为,也就是没有透明度。对象里头的其实是指不透明度,其值范围为,越大越不透明。与的映射与之间的主要关系列表如下这个怎么转义呢,如下再将输出为十六进制的表示方式不足两位往前不零

本文主要介绍下java Color对象中的alpha值。

alpha

java/awt/Color.java

/**
     * Creates an opaque sRGB color with the specified red, green,
     * and blue values in the range (0 - 255).
     * The actual color used in rendering depends
     * on finding the best match given the color space
     * available for a given output device.
     * Alpha is defaulted to 255.
     *
     * @throws IllegalArgumentException if r, g
     *        or b are outside of the range
     *        0 to 255, inclusive
     * @param r the red component
     * @param g the green component
     * @param b the blue component
     * @see #getRed
     * @see #getGreen
     * @see #getBlue
     * @see #getRGB
     */
    public Color(int r, int g, int b) {
        this(r, g, b, 255);
    }

    /**
     * Creates an sRGB color with the specified red, green, blue, and alpha
     * values in the range (0 - 255).
     *
     * @throws IllegalArgumentException if r, g,
     *        b or a are outside of the range
     *        0 to 255, inclusive
     * @param r the red component
     * @param g the green component
     * @param b the blue component
     * @param a the alpha component
     * @see #getRed
     * @see #getGreen
     * @see #getBlue
     * @see #getAlpha
     * @see #getRGB
     */
    @ConstructorProperties({"red", "green", "blue", "alpha"})
    public Color(int r, int g, int b, int a) {
        value = ((a & 0xFF) << 24) |
                ((r & 0xFF) << 16) |
                ((g & 0xFF) << 8)  |
                ((b & 0xFF) << 0);
        testColorValueRange(r,g,b,a);
    }

java里头的color不指定alpha的话,默认其值为255,也就是没有透明度。

opacity

color对象里头的alpha其实是指不透明度,其值范围为0-255,越大越不透明。
其通常对应opacity,这个就是单词语义表达的不透明度,其值范围[0,1.0f],值越大,越不透明。

opacity与alpha的映射

opacity与alpha之间的主要关系列表如下

100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00

这个怎么转义呢,如下

int alpha = Math.round(opacity * 255);

再将int输出为十六进制的表示方式

        String hex = Integer.toHexString(alpha).toUpperCase();
        if (hex.length() == 1){
            hex = "0" + hex;
        }

不足两位往前不零

doc

Understanding colors on Android (six characters)

Hex transparency in colors

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67903.html

相关文章

  • 聊聊网页中的图片

    摘要:使用的场景多为页面内容的图片,较大的头图,颜色过多的图片。就是页面中的背景,并不是内容,修饰作用。 warn: 这是一篇没有一张图片的讲图片的文章 1. 图片格式 通常在网页中使用的图片有三种格式,jpg,png和gif。jpg是有损压缩格式,就算你在ps里用100%质量保存,保存多次会产生质量损失,而png和gif则不会。因此如果开发者相对图片进行微处理,改动jpg不是明智的选择。p...

    Meathill 评论0 收藏0
  • 聊聊网页中的图片

    摘要:使用的场景多为页面内容的图片,较大的头图,颜色过多的图片。就是页面中的背景,并不是内容,修饰作用。 warn: 这是一篇没有一张图片的讲图片的文章 1. 图片格式 通常在网页中使用的图片有三种格式,jpg,png和gif。jpg是有损压缩格式,就算你在ps里用100%质量保存,保存多次会产生质量损失,而png和gif则不会。因此如果开发者相对图片进行微处理,改动jpg不是明智的选择。p...

    Vultr 评论0 收藏0
  • 【Sass/SCSS】我花4小时整理了的Sass的函数

    摘要:是分隔符,默认会自动侦测,或者指定为逗号或空格。判断列表中是否有中括号返回一列表的分隔符类型。映射对象是以一对或多对的来表示。判断是否有对应的,存在返回,否则返回。返回中所有的组成的队列。默认为,表明新颜色各取和的色值相加。【Sass/SCSS】我花4小时整理了的Sass的函数博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!...

    番茄西红柿 评论0 收藏2637
  • 为你的网页添加深色模式

    摘要:最近推出了新版的,并希望能够在浏览器中检测到新加入的深色模式。能够对页面容器上的边框阴影进行更新,使其在使用深色模式时不太透明。利用使用为按钮创建不同的样式和交互我们可以利用为深色和浅色主题的按钮创建不同的样式和悬停交互。 翻译:疯狂的技术宅原文:https://www.creativebloq.com/... 本文首发微信公众号:jingchengyideng欢迎关注,每天都给你...

    gaosboy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<