695

如何使Textview大约 20% 的背景透明(不是完全透明),其中背景中有颜色(即白色)?

4

19 回答 19

1657

使用下面的黑色代码:

<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)));
于 2013-06-03T06:17:05.440 回答
1106

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

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

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

我假设 20% 透明意味着 80% 不透明。如果你的意思是另一种方式,而不是CC使用33which 是十六进制的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 为底)。你可以使用谷歌来计算这个或任何计算器。使用谷歌,输入“204 to hexa”,它会给你十六进制值。在这种情况下,它是0xCC
  5. 将 4. 中获得的值添加到所需的颜色。例如,对于红色,即FF0000,您将拥有CCFF0000

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

于 2012-07-01T22:09:26.437 回答
176

您可以管理颜色不透明度,更改颜色定义中的前 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 
于 2016-08-24T16:13:26.797 回答
117

使用具有 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

于 2012-07-01T22:07:05.150 回答
106

您可以尝试执行以下操作:

textView.getBackground().setAlpha(51);

在这里,您可以将不透明度设置在 0(完全透明)到 255(完全不透明)之间。51 正是你想要的 20%。

于 2012-07-01T22:17:27.347 回答
94

在 Android Studio 中有一个内置工具可以调整颜色和 alpha/opacity 值

Android 调整颜色不透明度

举例说明:
https ://devdeeds.com/how-to-add-custom-color-to-views-in-xml-android-studio-ide/

于 2017-01-26T03:32:44.930 回答
78

我们也可以以 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**,
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**
于 2018-09-11T07:55:00.077 回答
37

看截图

我采取了三种观点。在第一个视图中,我设置了完整(无 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;
    }
}

科特林版本:

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

完毕

于 2015-05-29T10:13:24.900 回答
28

所有十六进制值从 100% 到 0% alpha,您可以使用下面提到的 alpha 值设置任何颜色。例如#FAFFFFFF(AARRGGBB)

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
于 2018-05-14T09:57:55.393 回答
21

现在Android Studio 3.3及更高版本提供了一个内置功能来更改颜色的Alpha值,

只需在 Android Studio 编辑器中单击一种颜色并percentage.

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

在此处输入图像描述

于 2019-03-23T07:10:18.313 回答
18

有一个 XML 值alpha采用双精度值。

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

  • android:alpha="0.0"那是看不见的

  • android:alpha="0.5"透视

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

这就是它的工作原理。

于 2015-10-27T16:26:40.270 回答
8
<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:alpha="0.9"
        />

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

于 2016-04-19T10:01:26.357 回答
7

如果你想在 kotlin 中使颜色 50% 透明,

val percentage = 50f/100 //50%
ColorUtils.setAlphaComponent(resources.getColor(R.color.whatEverColor), (percentage * 255).toInt())
于 2020-03-31T10:50:42.027 回答
4

使用此查看 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" />

安卓:阿尔法=“0.38”

Text View alpha property set 0.38 to your textView visibility is faid 
于 2017-08-25T06:51:54.253 回答
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% 透明

希望这会帮助你。谢谢

于 2019-07-08T12:13:25.057 回答
2

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

如果你想使用颜色值,你也可以使用它的简短版本 with #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"
    ... />
于 2020-02-01T06:54:09.703 回答
2

我会推荐使用alpha属性。

<TextView
   android:alpha="0.8" />

或者现在您可以使用selector. background_color_25.xmlcolors包中创建。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:alpha="0.8" android:color="@color/background_color" />
</selector>

这是用法:

<TextView
   android:background="@color/background_color_25" />
于 2020-10-05T11:40:10.123 回答
0

试试这个代码:)

它是一个完全透明的十六进制代码- “#00000000”

于 2018-04-11T05:16:52.157 回答
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();
}
于 2015-08-03T12:32:28.110 回答