如何在Android上使背景20%透明


Answers:


1038

使颜色在Alpha通道中占80%。例如,用于红色用途#CCFF0000

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

在示例中,CC是的十六进制数255 * 0.8 = 204。请注意,前两个十六进制数字用于alpha通道。格式为#AARRGGBB,其中AAalpha通道,RR红色通道,GG绿色通道和BB蓝色通道。

我假设20%的透明意味着80%的不透明。如果您以其他方式表示,请代替CC使用33的十六进制形式255 * 0.2 = 51

为了计算Alpha透明度值的正确值,您可以按照以下步骤操作:

  1. 给定透明度百分比(例如20%),您知道不透明百分比值为80%(这是100-20=80
  2. alpha通道的范围是8位(2^8=256),表示范围从0到255。
  3. 将不透明百分比投影到Alpha范围内,即将范围(255)乘以百分比。在这个例子中255 * 0.8 = 204。根据需要舍入到最接近的整数。
  4. 将在3中获得的值(以10为底)转换为十六进制(以16为底)。您可以将Google用于此计算器或任何计算器。使用Google,输入“ 204 to hexa”,它将为您提供十六进制值。在这种情况下是0xCC
  5. 将在4.中获得的值添加到所需的颜色之前。例如,对于红色FF0000,您将拥有CCFF0000

您可以查看有关颜色Android文档


对于具有透明性的白色,根据问题使用android:background="#CCFFFFFF"
gotwo

如何将此规则应用于带有图像的背景?
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 2015年

如何将此规则应用于带有图像的背景?
user1090751

149

您可以更改颜色定义中的前两个字符来管理颜色不透明度:

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
Bruce

5
是的,昨天我需要管理13%的Alpha,因此决定将搜索结果添加到此有用的线程中。
卡罗尔

如果我想使LinearLayout完全透明而没有任何颜色怎么办?
2013年

1
默认情况下,所有视图都是透明的,您可以通过编程方式使用mLinearLayout.setBackgroundColor(Color.TRANSPARENT);。或xml中的android:background =“ @ android:color / transparent”(如果出于某些原因必须强制使用它(显然,此颜色不是子视图所继承的))
carlol

106

使用具有类似alpha值的颜色#33------,并使用XML属性将其设置为editText的背景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

优雅的解决方案。当我选择它时,我可以将其应用于列表项背景-这样我得到了一些颜色,但它与项目文本不符。非常酷,谢谢!
Gene Bo

不建议使用setAlpha(int),而建议使用setAlpha(float),其中0是完全透明的,而1是完全不透明的myImage.setAlpha(0.5f);
polmabri

@polmabri,不是真的。myImage.setAlpha(0.5f);将Alpha应用于View本身,但是我在答案中显示的内容将应用于View的背景可绘制对象。
yugidroid

这可能会导致图形错误!请谨慎使用并进行大量测试。
迈克尔


32

看截图

我已经采取了三种看法。在第一个视图中,我设置了全色(无Alpha)颜色,在第二个视图中,我设置了一半(0.5 Alpha)颜色,在第三个视图中,我设置了浅色(0.2 Alpha)。

您可以使用以下代码来设置任何颜色并使用alpha获取颜色:

文件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;
    }
}

Kotlin版本:

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))
}

完成


30

我们也可以使dis透明化。

白色代码-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,19%-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
惊人的答案。保持。
塔伦(Tarun)

22

从100%到0%alpha的所有十六进制值,您可以使用下面提到的alpha值设置任何颜色。例如#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和更高版本提供了一项内置功能,可以更改Alpha颜色值,

只需在Android Studio编辑器中单击一种颜色,然后在中提供Alpha值percentage

有关更多信息,请参见下图

在此处输入图片说明


18

有一个XML值带有alpha双精度值。

由于API 11+范围是从0f1f(包括),因此0f是透明的和1f不透明的:

  • android:alpha="0.0" 多数民众赞成在看不见的

  • android:alpha="0.5" 透视

  • android:alpha="1.0" 完全可见

就是这样。


1
这将使整个布局半透明,包括其内容
jack_the_beast 2015年

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

Android API 11+中的Alpha范围介于0(透明)和1(不透明)之间


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:alpha =“ 0.38”

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

3

在Kotlin中,您可以像这样使用alpha,

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

我知道,这是一个非常老的问题。

如果您要使用颜色值,则还可以将其与一起使用#ARGBAalpha通道的值在哪里。

如果是白色,则具有以下透明度值:

#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的答案的程序化解决方案,用于计算alpha通道的十六进制值。:)

 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。
Pawan

0

试试这个代码:)

其完全透明的十六进制代码-“#00000000”


0

如果您想使Kotlin的颜色透明50%,

val percentage = 50f/100 //50%
ColorUtils.setAlphaComponent(resources.getColor(R.color.whatEverColor), (percentage * 255).toInt())
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.