Как сделать фон на 20% прозрачным на Android


Ответы:


1038

Сделайте так, чтобы цвет составлял 80% в альфа-канале. Например, для красного использования #CCFF0000:

<TextView
   ...
   android:background="#CCFF0000" />

В примере CCэто шестнадцатеричное число для 255 * 0.8 = 204. Обратите внимание, что первые две шестнадцатеричные цифры для альфа-канала. Формат: #AARRGGBBгде AAальфа-канал, RRкрасный канал, GGзеленый канал и BBсиний канал.

Я предполагаю, что 20% прозрачности означает 80% непрозрачности. Если вы имели в виду другой путь, вместо CCиспользования 33которого шестнадцатеричный для 255 * 0.2 = 51.

Чтобы вычислить правильное значение для значения альфа-прозрачности, вы можете выполнить следующую процедуру:

  1. Учитывая процент прозрачности, например 20%, вы знаете, что непрозрачное процентное значение составляет 80% (это 100-20=80)
  2. Диапазон для альфа-канала составляет 8 бит (2^8=256 ), что означает диапазон от 0 до 255.
  3. Спроецируйте непрозрачный процент в альфа-диапазон, то есть умножьте диапазон (255) на процент. В этом примере 255 * 0.8 = 204. При необходимости округлите до ближайшего целого числа.
  4. Преобразуйте значение, полученное в 3., которое находится в основании 10, в шестнадцатеричное (основание 16). Вы можете использовать Google для этого или любого калькулятора. Используя Google, введите «204 в гекса», и он даст вам шестнадцатеричное значение. В этом случае это так 0xCC.
  5. Добавьте значение, полученное в 4., к желаемому цвету. Например, для красного цвета, который у FF0000вас будет CCFF0000.

Вы можете взглянуть на документацию по Android для цветов .


Для белого цвета с прозрачностью, в зависимости от вопроса, используйте android:background="#CCFFFFFF".
получил

Как применить это правило для фона с изображением?
user1090751

1517

Используйте код ниже для черного:

<color name="black">#000000</color>

Теперь, если я хочу использовать прозрачность, вы можете использовать следующий код:

 <color name="black">#99000000</color> <!-- 99 is for alpha and others pairs zero's are for R G B -->

И ниже для кода непрозрачности: и весь уровень непрозрачности здесь

Шестнадцатеричные значения непрозрачности

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

Если вы всегда забываете, какой код для прозрачности, тогда вы должны увидеть ссылку ниже и не беспокоиться о том, чтобы вспомнить что-нибудь о прозрачном коде: -

https://github.com/duggu-hcd/TransparentColorCode

textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor(R.color.border_color,10)));

3
увидев это, я использовал # 99ffffff, и он отлично сработал, спасибо
nawaab saab

Как применить это правило для фона с изображением?
user1090751

149

Вы можете управлять непрозрачностью цвета, изменяя первые 2 символа в определении цвета:

# 99 000000

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
Что это добавляет к существующим ответам?
Ученик-

6
@ Code-Apprentice Я думаю, этот ответ полезен, когда вам нужна более мелкозернистая прозрачность, например, 87% или 54%, как те, которые упомянуты в material.google.com/style/color.html#color-color-schemes
Брюс

5
Да, вчера мне нужно было управлять альфа-версией 13%, и я решил добавить результаты поиска в эту полезную ветку.
Карлол

Что если бы я хотел сделать LinearLayout полностью прозрачным без какого-либо цвета?
Si8

1
Все виды по умолчанию прозрачны, вы можете программно использовать mLinearLayout.setBackgroundColor (Color.TRANSPARENT); или android: background = "@ android: color / transparent" в вашем xml, если вам по каким-то причинам придется его форсировать (очевидно, этот цвет не наследуется дочерними представлениями)
carlol

106

Используйте цвет с альфа-значением, например #33------, и установите его в качестве фона вашего editText, используя атрибут XML android:background=" ".

  1. 0% (прозрачный) -> # 00 в шестнадцатеричном виде
  2. 20% -> # 33
  3. 50% -> # 80
  4. 75% -> # C0
  5. 100% (непрозрачный) -> #FF

255 * 0,2 = 51 → в гексе 33


91

Вы можете попробовать сделать что-то вроде:

textView.getBackground().setAlpha(51);

Здесь вы можете установить непрозрачность от 0 (полностью прозрачный) до 255 (полностью непрозрачный). 51 - это именно те 20%, которые вам нужны.


17
@koti, потому что ваша textViewпеременная null.
yugidroid

хорошее элегантное решение. Я могу применить это к фону элемента списка, когда выбираю его - поэтому я получаю некоторый цвет, но он не конкурирует с текстом элемента. Очень круто, спасибо!
Джин Бо

setAlpha (int) устарела в пользу setAlpha (float), где 0 полностью прозрачен, а 1 полностью непрозрачен myImage.setAlpha (0.5f);
Полмабри

@polmabri, не совсем. myImage.setAlpha(0.5f);применяет альфу к самому представлению, но то, что я показываю в своем ответе, применяется к фону рисования представления.
Югидроид

Это может вызвать графические ошибки! Используйте с осторожностью и много испытаний.
Майкл

74

В Android Studio есть встроенный инструмент для настройки цвета и значения альфа / непрозрачности :

Android отрегулируйте непрозрачность цвета


32

Посмотреть скриншот

Я взял три взгляда. В первом виде я установил полный (без альфа) цвет, во втором - половинный (0,5 альфа) цвет, а в третьем - светлый (0,2 альфа).

Вы можете установить любой цвет и получить цвет с помощью альфы, используя следующий код:

Файл activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:gravity = "center"
    android:orientation = "vertical"
    tools:context = "com.example.temp.MainActivity" >

    <View
        android:id = "@+id/fullColorView"
        android:layout_width = "100dip"
        android:layout_height = "100dip" />

    <View
        android:id = "@+id/halfalphaColorView"
        android:layout_width = "100dip"
        android:layout_height = "100dip"
        android:layout_marginTop = "20dip" />

    <View
        android:id = "@+id/alphaColorView"
        android:layout_width = "100dip"
        android:layout_height = "100dip"
        android:layout_marginTop = "20dip" />

</LinearLayout>

Файл MainActivity.java

public class MainActivity extends Activity {

    private View fullColorView, halfalphaColorView, alphaColorView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        fullColorView = (View)findViewById(R.id.fullColorView);
        halfalphaColorView = (View)findViewById(R.id.halfalphaColorView);
        alphaColorView = (View)findViewById(R.id.alphaColorView);

        fullColorView.setBackgroundColor(Color.BLUE);
        halfalphaColorView.setBackgroundColor(getColorWithAlpha(Color.BLUE, 0.5f));
        alphaColorView.setBackgroundColor(getColorWithAlpha(Color.BLUE, 0.2f));
    }


    private int getColorWithAlpha(int color, float ratio) {
        int newColor = 0;
        int alpha = Math.round(Color.alpha(color) * ratio);
        int r = Color.red(color);
        int g = Color.green(color);
        int b = Color.blue(color);
        newColor = Color.argb(alpha, r, g, b);
        return newColor;
    }
}

Котлин версия:

private fun getColorWithAlpha(color: Int, ratio: Float): Int {
  return Color.argb(Math.round(Color.alpha(color) * ratio), Color.red(color), Color.green(color), Color.blue(color))
}

Выполнено


31

Мы также можем сделать прозрачным.

Код белого цвета - FFFFFF

20% белый - # 33 FFFFFF

20% - 33

70% белый - # B3 FFFFFF

70% - B3

Все шестнадцатеричные значения от 100% до 0%

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% - 3319% - 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
Удивительный ответ. Так держать.
Тарун

22

Все шестнадцатеричные значения от 100% до 0% альфа. Вы можете установить любой цвет с альфа-значениями, указанными ниже. например #FAFFFFFF (ARRGGBB)

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

19

Теперь Android Studio 3.3 и более поздняя версия предоставляют встроенную функцию для изменения альфа- значения цвета,

Просто нажмите на цвет в редакторе студии Android и введите значение альфа вpercentage .

Для получения дополнительной информации см. Изображение ниже

введите описание изображения здесь


18

Существует значение XML, alphaкоторое принимает двойные значения.

Поскольку API 11+диапазон значений от 0fдо 1f(включительно), 0fон прозрачен и 1fнепрозрачен:

  • android:alpha="0.0" это невидимо

  • android:alpha="0.5" смотреть сквозь

  • android:alpha="1.0" полный видимый

Вот как это работает.


1
это сделает весь макет полупрозрачным, включая его содержимое
jack_the_beast

7
<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:alpha="0.9"
        />

Альфа-диапазон между 0 (прозрачный) и 1 (непрозрачный) в Android API 11+


3

См. Популярность ниже textView, используя это

     android:alpha="0.38"

введите описание изображения здесь

XML

android:color="#3983BE00"    // Partially transparent sky blue

динамично

btn.getBackground () SetAlpha (128). // 50% прозрачность

tv_name.getBackground () SetAlpha (128). // 50% прозрачность

Where the INT ranges from 0 (fully transparent) to 255 (fully opaque).


  <TextView
            style="@style/TextAppearance.AppCompat.Caption"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:alpha="0.38"
            android:gravity="start"
            android:textStyle="bold"
            tools:text="1994|EN" />

Android: альфа = "0,38"

Text View alpha property set 0.38 to your textView visibility is faid 

3

В Kotlin вы можете использовать альфа, как это,

   //Click on On.//
    view.rel_on.setOnClickListener{
        view.rel_off.alpha= 0.2F
        view.rel_on.alpha= 1F

    }

    //Click on Off.//
    view.rel_off.setOnClickListener {
        view.rel_on.alpha= 0.2F
        view.rel_off.alpha= 1F
    }

Результат как на скриншотах.20% прозрачный

Надеюсь, что это поможет вам. Спасибо


1

Я знаю, это очень старый вопрос.

Если вы хотите использовать значение цвета, вы также можете использовать его с краткой версией #ARGB. Где Aэто значение для альфа-канала.

В случае белого цвета существуют следующие значения прозрачности:

#FFFF  -     0%
#EFFF  -   6,7%
#DFFF  -  13,3%
#CFFF  -  20,0%
#BFFF  -  26,7%
#AFFF  -  33,3%
#9FFF  -  40,0%
#FFF8  -  46,7%
#7FFF  -  53,3%
#6FFF  -  60,0%
#5FFF  -  66,7%
#4FFF  -  73,3%
#3FFF  -  80,0%
#2FFF  -  86,7%
#1FFF  -  93,3%
#0FFF  - 100,0%

Таким образом, вы можете TextViewдобавить следующую строку для 20% прозрачности:

<TextView
    android:background="#CFFF"
    ... />

0

Вот программное решение из ответа @Aromero для вычисления шестнадцатеричного значения для альфа-канала. :)

 public static void main(String[] args) throws Exception {
    final Scanner scanner = new Scanner(System.in);
    int transPerc;
    float fPerc;
    System.out.println("Enter the transparency percentage without % symbol:");
    while((transPerc=scanner.nextInt())>=0 && transPerc <=100){
        fPerc = (float) transPerc / 100;
        transPerc = Math.round(255 * fPerc);
        System.out.println("= " + Integer.toHexString(transPerc));
        System.out.print("another one please : ");
    }
    scanner.close();
}

3
Вопрос был помечен для Android. Этот код не поддерживает Android.
Паван

0

Попробуйте этот код :)

Это полностью прозрачный шестнадцатеричный код - "# 00000000"


0

если вы хотите сделать цвет прозрачным на 50% в котлине,

val percentage = 50f/100 //50%
ColorUtils.setAlphaComponent(resources.getColor(R.color.whatEverColor), (percentage * 255).toInt())
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.