2013-05-17 13 views
22

xml drawableの色にopacityの値を設定する必要があります。しかし、私が不透明度(#20C0C0C0)の2つの値を追加しようとすると、動作しません。色はトータルで透明です。ここでxml drawableのアルファ/不透明度の値をどのように設定するのですか?

は私のコードです...

<?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> 

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

+1

CDCDCDこれは不透明な色です。最初の2バイトがアルファチャンネルです。 FFは最大α00が最小値です。 #00CDCDCDは完全に透明な色です – Blackbelt

+2

[Shape Drawables](http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape)のアルファ設定はありません。 – TronicZomB

答えて

54

色は完全に透明なb/cに「見える」ように見えますが、ほぼ完全に透明です。 16進数の色は通常6桁の#RRGGBBですが、最初は2桁で渡す不透明度を設定したい場合は、20C0C0C0の場合は20となります。

16進数(16進数) :

  • ベース16 |ベース10
  • 0 | 0(これは完全に透明です)
  • 20 | 32(これはあなたの不透明度です)
  • FF | 255(これは完全に不透明です)

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

あなたはとても高い番号(7Fはあなたに約50%の不透明度を与える)

使用(以下透明)より不透明になりたい場合は、次の

<solid android:color="#7FC0C0C0" /> 
48

を私は少し遅れる場合がありますしかし、誰かがこの投稿に来て、アルファ値を探しているならば。ジャレッドRummlerは仕事を行なったし、そこで彼は、16進コード内のすべての不透明度値を計算するために、このメソッドを使用するすべてのposibile値で https://stackoverflow.com/a/27813407/5973229

をおprovids:

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 
+1

ありがとう、私のproblmを解決しました – murli

+2

ヘックステーブル<3 –

0

私が見た限りでは、APIバージョン> Lollipopの開発ではアルファに16進値を使用する必要はありません。私はこれを昨日チェックし、これにも驚いた。

アンドロイドのカラースキームでは、カラーの白に対して#FFFFFFのように16進値を使用します。これは前記色のRGBチャンネルを表す。言い換えれば、上の@Cumulo Nimbusで述べたように、#RRGGBB。

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

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

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

関連する問題