Androidの色を理解する(6文字)


212

Androidで色がどのように機能するかを理解しようとしています。この色をの背景として設定しました。LinearLayout透明度のある灰色の背景が表示されます。

<gradient android:startColor="#b4555555" android:endColor="#b4555555"
 android:angle="270.0" />

最後の2文字(55)を削除すると、単色になり、透明度が失われます。これについての説明が見られるページを探していましたが、見つかりませんでした。

回答:


170

6桁の16進数を指定すると、RGB(赤、緑、青の各値に2桁の16進数)を意味します。

8桁の16進数を指定すると、それはARGBになります(アルファ、赤、緑、青の値ごとに2桁の16進数)。

したがって、最後の55を削除すると、A = B4、R = 55、G = 55、B = 55(ほとんど透明な灰色)からR = B4、G = 55、B = 55(完全に非灰色)に変更されます-透明な薄暗い小指)。

サポートされている形式については、「カラー」のドキュメントを参照してください。


そして、コードを通じてtextViewの透明度を設定するにはどうすればよいですか?ARGB値をintに変換したいので、後でそれをtextView.setBackgroundColor(int color)メソッドで使用できます。出来ますか?それを達成する他の方法は?
— Marek

@Marek:ARGB値は事実上intです。developer.android.com/reference/android/graphics/Color.html(<<ページで検索)にあるドキュメントを参照してください。
— Jon Skeet 2013

ただし、#AARRGGBBとしてフォーマットされていません。その後、0xAARRGGBBとしてフォーマットされます。これが、setBackgroundColorメソッドで使用できなかった理由です。私はColor.parseColor( "#AARRGGBB)を使用することができます
— Marek

@Marek:「フォーマット済み」ではなく、単なる整数です。ドキュメントに記載されているように、さまざまなビットを組み合わせることができます。
— Jon Skeet 2013

1
@トースター:いいえ、透明度。
— ジョンスキート、

1184

Androidは、16進数のARGB値を使用します。これは、#AARRGGBBとしてフォーマットされます。その最初の文字のペア、AA、はアルファチャネルを表します。10進数の不透明度の値を16進数の値に変換する必要があります。手順は次のとおりです。

アルファ16進値プロセス

  1. 不透明度を10進値として取り、255を掛けます。したがって、50%不透明なブロックがある場合、10進値は.5になります。例:.5 x 255 = 127.5
  2. 分数は16進数に変換されないため、数値を最も近い整数に切り上げるか切り捨てる必要があります。例:127.5は128に切り上げます。55.25は55に切り捨てます。
  3. http://www.binaryhexconverter.com/decimal-to-hex-converterなどの10進数から16進数へのコンバーターに10進数値を入力し、値を変換します。
  4. 単一の値しか返されない場合は、その前にゼロを付けます。たとえば、5%の不透明度を取得しようとしていて、このプロセスを実行している場合、16進数の値Dになります。その前にゼロを追加して、0Dとして表示します。

これは、アルファチャネル値を見つける方法です。私は自由のためにあなたのために価値のリストをまとめました。楽しい!

16進数の不透明度の値

  • 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

37
Androidマテリアルカラーデザインガイドのベース:google.com/design/spec/style/… その他の主要な16進不透明度値:100%:FF 87%:DE 70%:B3 54%:8A 30%:4D 26%:42 12 %:1F
— cn123h

ここでは、すべての値を見つける:dtp-aus.com/hexadeci.htmを、それはあなたを助け、あなたは255と100の希望により、複数のそれを除算することにより、アルファ0-100番号を取得することができます
— Niib Fouda

12%のアルファについて: echo "obase=16; ibase=10; (255*12+50)/100" | bc。(+50-最も近い値に丸める場合、実際には100/2です)
— 警官

195

オフゴーイング@BlondeFuriousから答えを、ここでは0%のアルファ100%からそれぞれ16進数の値を取得するための、いくつかのJavaコードは次のとおりです。

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

JavaScriptのバージョンは次のとおりです。


Googleで「数値を16進数に」することもできます。「数値」は0から255までの任意の値です。


36

Androidマテリアルデザイン

これらは、テキストの色の不透明度レベルを設定するための変換です。

  • 100%:FF
  • 87%:DE
  • 70%:B3
  • 54%:8A
  • 50%:80
  • 38%:61
  • 12%:1F

明るい背景に暗いテキスト

ここに画像の説明を入力してください

  • 一次テキスト: DE000000
  • 二次テキスト: 8A000000
  • 無効なテキスト、ヒントテキスト、およびアイコン: 61000000
  • 仕切り: 1F000000

暗い背景に白いテキスト

ここに画像の説明を入力してください

  • 一次テキスト: FFFFFFFF
  • 二次テキスト: B3FFFFFF
  • 無効なテキスト、ヒントテキスト、およびアイコン: 80FFFFFF
  • 仕切り: 1FFFFFFF

こちらもご覧ください


素晴らしい仕事、ありがとう!2019年1月7日以降、これらの値は、リンクしたAndroid Material Designページに表示されなくなります。これらはまだ公式の推奨値ですか?それらが記載されている別の公式の情報源はありますか?ありがとう!
— TheUnwokenFool

@TheUnwokenFool、この回答は現在古くなっている可能性があります。テキストの不透明度の設定についても何もわかりません。矛盾があると思われる場合は、現在のガイドラインに従います。
— Suragch

17

Androidでは、色はRGBまたはARGBとして指定できます。

http://en.wikipedia.org/wiki/ARGB

RGBではすべての色(赤、緑、青)に2つの文字があり、ARGBではアルファチャネル用に2つの追加文字があります。

したがって、8文字の場合、それはARGBで、最初の2文字はアルファチャネルを指定します。先頭の2文字を削除すると、RGBのみになります(無地、アルファ/透明度なし)。Javaソースコードで色を指定したい場合は、以下を使用する必要があります。

int Color.argb (int alpha, int red, int green, int blue)

alpha  Alpha component [0..255] of the color
red    Red component [0..255] of the color
green  Green component [0..255] of the color
blue   Blue component [0..255] of the color

リファレンス:argb


7

8桁の16進数のカラー値はARGB(アルファ、赤、緑、青)の表現ですが、6桁の値は不透明度100%(完全に不透明)を想定し、RGB値のみを定義します。これを完全に不透明にするには、#FF555555または#555555のいずれかを使用できます。各2桁の16進値は1バイトで、0〜255の値を表します。


-1

新しいクロムバージョン(おそらく67.0.3396.62)では、CSSの16進数カラーでこのモデルの表示を使用できます。

例えば:

div{
  background-color:#FF00FFcc;
}

ccは不透明ですが、古いクロムはそのmodをサポートしていません


StackOverflowへようこそ。ツアーにアクセスしてください。OPがChromeやHTMLではなくAndroidの色について尋ねたので、あなたの返答はOPを助けません。
— PeS

@PeS昨日、はい、彼らは同じ表現を持っています。
— ハイクス2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.