45

不透明度の値を xml ドローアブルの色に設定する必要があります。しかし、たとえば不透明度 (#20C0C0C0) の 2 つの値を追加しようとすると、機能しません。色は完全に透明に見えます。

これが私のコードです...

  <?xml version="1.0" encoding="utf-8"?>
  <shape xmlns:android="http://schemas.android.com/apk/res/android" >
     <corners
        android:radius="2dp" />
     <solid
        android:color="#CDCDCD" />
     <stroke
        android:width="2dp"
        android:color="@android:color/darker_gray" />
     <size 
        android:height="60dp"
        android:width="80dp"/>
   </shape>

誰にもアイデアがありますか?ご協力いただきありがとうございます。

4

3 に答える 3

114

少し遅れるかもしれませんが、他の誰かがこの投稿に来て、アルファ値を探している場合. Jared Rummler が作業を行い、あらゆる可能な値を提供してくれました https://stackoverflow.com/a/27813407/5973229

そこで彼は、このメソッドを使用して、16 進コードのすべての不透明度値を計算します。

for (double i = 1; i >= 0; i -= 0.01) {
i = Math.round(i * 100) / 100.0d;
int alpha = (int) Math.round(i * 255);
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));

そして、これは結果です:

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
于 2016-03-28T06:59:31.143 に答える
75

色は完全に透明に「見える」b/c ほぼ完全に透明です。16 進数の色は通常 6 桁 #RRGGBB ですが、不透明度を設定する場合は、最初に 16 進数スケール (基数 16) で 2 桁を渡すため、この場合 #20C0C0C0 で不透明度は 20 (基数 16) になります。 .

以下は、16 進数にマップされた典型的な 10 進数のアルファ値です。

  • 0 -> 0 (これは完全に透明です)
  • 32 -> 20 (これは不透明度です)
  • 255 -> FF (これは完全に不透明です)

したがって、不透明度はわずか 12% です。

より不透明にしたい (透明度を下げたい) 場合は、より高い数値を使用します (7F で約 50% の不透明度が得られます)。

そう:

<solid android:color="#7FC0C0C0" />
于 2013-12-13T21:02:13.667 に答える
4

2018年以降、人々がこれを見たときの最新の回答を提供します。私が見た限りでは、API バージョン > Lollipop 向けに開発する場合、アルファに 16 進値を使用する必要はありません。私も昨日これをチェックしましたが、これにも驚きました。

android のカラー スキームでは、#FFFFFF のように 16 進数値を使用して白色を表します。これは、前述の色の RGB チャネルを表します。つまり、上記の @Cumulo Nimbus で言及されているように、#RRGGBB.

不透明度/透明度については、#AARRGGBB を与えるアルファ チャネルも含める必要があります。10 進数/10 進数 (基数 10) では、R、G、B チャネルはそれぞれ 0 ~ 255 の範囲であり、アルファ チャネルの範囲は 0 ~ 100 であるため、提供されたカラー サンプルを 50% の不透明度で使用したい場合は、 do は次のようなものです:

<solid android:color="#50C0C0C0"/>

ここで、50 は必要な不透明度のパーセンテージです。完全に不透明なオプション、つまり 100% の不透明度の場合、#FFC0C0C0 または #100C0C0C0 を使用する必要はありません (注: これは何も表示しません)。代わりに #C0C0C0 のままにしておいてください。

于 2018-02-10T11:56:14.227 に答える