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.