Android百分比透明度与十六进制值的转换

很多时候,UI设计师给我们的设计稿上面,对于有透明度变化的UI一般都以百分比的形式告诉我们(比如下面的图片中遮罩背景不透明度为70%),但是这个百分比对应的十六进制alpha值到底是多少呢?下面我们通过代码来实现百分比到十六进制值的转换。

在这里插入图片描述

private void printAlpha() {
    for (double i = 1; i >= 0; i -= 0.01) {
        //透明度转成alpha值
        int alpha = (int) Math.round(i * 255);

        //alpha值转成16进制
        String hex = Integer.toHexString(alpha).toUpperCase();
        if (hex.length() == 1) {
            hex = "0" + hex;
        }
        int percent = (int) (i * 100);
        System.out.println(String.format("%d%%  | %s", percent, hex));
    }
}

写个单元测试验证一下打印结果

public class ExampleUnitTest {

    @Test
    public void test() {
         printAlpha();
    }
}

打印结果如下:

百分比十六进制alpha值
100%FF
99%FC
98%FA
97%F7
96%F5
95%F2
94%F0
93%ED
92%EB
91%E8
90%E6
89%E3
88%E0
87%DE
86%DB
85%D9
84%D6
83%D4
82%D1
81%CF
80%CC
79%C9
78%C7
77%C4
76%C2
75%BF
74%BD
73%BA
72%B8
71%B5
70%B3
69%B0
68%AD
67%AB
66%A8
65%A6
64%A3
63%A1
62%9E
61%9C
60%99
59%96
58%94
57%91
56%8F
55%8C
54%8A
53%87
52%85
51%82
50%80
49%7D
48%7A
47%78
46%75
45%73
44%70
43%6E
42%6B
41%69
40%66
39%63
38%61
37%5E
36%5C
35%59
34%57
33%54
32%52
31%4F
30%4D
29%4A
28%47
27%45
26%42
25%40
24%3D
23%3B
22%38
21%36
20%33
19%30
18%2E
17%2B
16%29
15%26
14%24
13%21
12%1F
11%1C
10%1A
9%17
8%14
7%12
6%0F
5%0D
4%0A
3%08
2%05
1%03
0%00

所以我们可以知道黑色的70%透明度在Android中可以用#B3000000表示(#AARRGGBB,A表示透明度、R表示红色通道、G表示绿色通道、B表示蓝色通道)

我用hexo搭建了一个自己的博客https://xiayunquan.gitee.io, 感兴趣的朋友可以去看看。
分类、标签和搜索功能使得可以更好的管理和查阅文章,而且还不用看烦人的广告。
后期我还是会坚持同步更新个人博客和CSDN的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值