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

问题描述 投票:554回答:15

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

android transparency textview
15个回答
982
投票

使alpha通道中的颜色为80%。例如,红色使用#CCFF0000

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

在示例中,CC255 * 0.8 = 204的十六进制数。请注意,前两个十六进制数字用于Alpha通道。格式是#AARRGGBB,其中AA是alpha通道,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 documentation for colors


9
投票

我们也可以这样透明化。

白色代码 - FFFFFF

70%白色 - #B3FFFFFF。

100%-FF,95%-F2,90%-E6,85%-D9,80%-CC,75%-BF,70%-B3,65%-A6,60%-99,55%-8℃, 50% - 80%,45% - 73%,40% - 66%,35% - 59%,30% - 4%,25% - 40%,20% - 33%,15% - 26%,10% - 1A,5% - 0D, 0% - 00


7
投票

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

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

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

enter image description here


6
投票
<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:alpha="0.9"
        />

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


3
投票

请参阅textView下面的Popularity使用此功能

     android:alpha="0.38"

enter image description here

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 

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

0
投票

试试这个代码:)

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


0
投票

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

结果就像在这个屏幕shots.20 % Transparent

希望这会对你有所帮助。谢谢


1419
投票

使用以下代码为黑色:

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

现在,如果我想使用不透明度,那么您可以使用以下代码:

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

以下是不透明度代码:和all opacity level here

Hex Opacity Values

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.transparentColor10(R.color.border_color)));

124
投票

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

#99000000

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 

96
投票

使用像#33------这样的alpha值的颜色,并使用XML属性android:background=" "将其设置为editText的背景。

  1. 0%(透明) - >十六进制#00
  2. 20% -> #33
  3. 50% -> #80
  4. 75% - >#C0
  5. 100%(不透明) - > #FF

255 * 0.2 = 51→十六进制33


82
投票

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

textView.getBackground().setAlpha(51);

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


69
投票

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

Android Adjust Color Opacity


29
投票

我有三个观点。在第一个视图中,我设置了完整(无alpha)颜色,在第二个视图中我设置了一半(0.5 alpha)颜色,在第三个视图中我设置了浅色(0.2 alpha)。

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

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

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

完成


21
投票

所有十六进制值从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

17
投票

有一个XML值alpha,它取双倍值。

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

  • android:alpha="0.0"那是看不见的
  • android:alpha="0.5"透视
  • android:alpha="1.0"完全可见

这就是它的工作原理。

© www.soinside.com 2019 - 2024. All rights reserved.