简体   繁体   中英

Set transparent background of an imageview on Android

I am using a web view in which I am adding an image view. How can I set the background of this image view to transparent?

I have tried this:

mImageview.setBackgroundResource(R.color.trans);

Where trans<color name="trans">#00000000 </color> .

您可以通过在 XML 中添加以下代码来设置任何布局、任何视图或任何组件的背景透明:

android:background="@android:color/transparent" 

In your XML set the Background attribute to any colour, White(#FFFFFF) shade or Black(#000000) shade. If you want transparency, just put 80 before the actual hash code:

#80000000

This will change any colour you want to a transparent one.. :)

In addition to what Harshad mentioned:

Two hexadecimal characters can be appended to any hexadecimal color code. The first two characters in an 8-digit hex color code represents its opacity in Android.

The two hexadecimal characters can range from 00 to FF. For example,

  • Normal opaque black hex- "#000000"
  • Fully transparent - "#00000000"
  • Fully opaque - "#FF000000"
  • 50% transparent - "#7F000000"

This way you can change any color to any level of transparency.

To find the hexadecimal prefix from a percentage:

Divide the percentage number by 100 and multiply by 255 to get the decimal value. Convert the decimal to hexadecimal here .

For example, for 50%, 50/100 * 255 = 127. Using the link we get hexadecimal value 7F.

Source: Android: how to create a transparent or opaque background

If you want to add 20% or 30% transparency, you should pre-pend two more characters to the hexadecimal code, like CC.

Note

android:background="#CCFF0088" in XML

where CC is the alpha value, FF is the red factor, 00 is the green factor, and 88 is the blue factor.

Some opacity code:

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

You can also set opacity programmatically like:

yourView.getBackground().setAlpha(127);

Set opacity between 0 (fully transparent) to 255 (completely opaque). The 127.5 is exactly 50%.

You can create any level of transparency using the given formula. If you want half transparent:

 16 |128          Where 128 is the half of 256.
    |8 -0         So it means 80 is half transparent.

And for 25% transparency:

16 |64            Where 64 is the quarter of 256.
   |4 -0          So it means 40 is quarter transparent.

Use the below code for black:

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

Now if you want to use opacity then you can use the below code:

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

And the below for opacity code:

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

There is already a predefined constant. Use Color.TRANSPARENT .

将此代码用于透明色

android:background="@android:color/transparent" 

There is already a transparent built into Android: R.color.transparent. http://developer.android.com/reference/android/R.color.html#transparent

But I think you may want to make the background of the image that you are placing into the WebView transparent, for example, with a transparent PNG, rather than the ImageView background. If the actual image is not at all see-through then the ImageView background can't be seen through it.

如果您想在代码中使用它,只需:

mComponentName.setBackgroundColor(Color.parseColor("#80000000"));

Try this code :)

Its an fully transparent hexa code - "#00000000"

In your XML file, set an attribute "Alpha"

such as

android:alpha="0.0" // for transparent
android:alpha="1.0" // for opaque

You can give any value between 0.0 to 1.0 in decimal to apply the required transparency. For example, 0.5 transparency is ideal for disabled component

或者,作为替代,使用以下代码解析资源 ID:

  mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));

对于那些仍然面临这个问题的人,你可以试试这个
element.getBackground().setAlpha(0);

Use the following for complete transparency:

#00000000

When I tried with #80000000 I got a black transparent overlay which I don't want. Try to change the first two digits; it controls the level of transparency, like

#00000000
#10000000
#20000000
#30000000

一种更简单的方法:

mComponentName.setBackgroundResource(android.R.color.transparent);

In Android Studio it is very simple to adjust color and opacity using a built-in tool:

Android 调整颜色不透明度

我遇到的另一个工作选项是设置android:background="@null"

You could also use View.setAlpha(float) to change the visibility precisely.

0 would be transparent, 1 fully visible. ;)

Try to use the following code. It will help you in full or more.

  1. A .xml file designed to use this code to set background color:

     android:background="#000000"

    or

    android:background="#FFFFFF"

    图片在这里

    Or you can set it programmatically as well.

  2. Also you can use this code programmatically:

     image.setBackgroundDrawable(getResources().getDrawable( R.drawable.llabackground));
  3. Also this code for setting the background color as well programmatically:

     image.setBackgroundColor(Color.parseColor("#FFFFFF"));
  4. This code for the same programmatically:

     image.setBackgroundColor(getResources().getColor(Color.WHITE));

The color depends on your choice of which color you want to use for transparent. Mostly use a white or #FFFFFF color.

Regarding R.drawable.llabackground : This line of code is for your style of the background, like something special or different for your purpose. You can also use this.

If you use a drawable XML image you can make it transparent as shown in the picture below, or you can use a color code:

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

在此处输入图片说明

In xml

@android:color/transparent

In code

mComponentName.setBackgroundResource(android.R.color.transparent)

Color definitions with transparency information may be in the form

#AARRGGBB or #ARGB .

You can use also the shorter value for full transparency: #0000 .

Other values are eg:

white  grey   black
#FFFF  #F888  #F000 - full color
#EFFF  #E888  #E000
#DFFF  #D888  #D000
#CFFF  #C888  #C000
#BFFF  #B888  #B000
#AFFF  #A888  #A000
#9FFF  #9888  #9000
#8FFF  #8888  #8000
#7FFF  #7888  #7000
#6FFF  #6888  #6000
#5FFF  #5888  #5000
#4FFF  #4888  #4000
#3FFF  #3888  #3000
#2FFF  #2888  #2000
#1FFF  #1888  #1000
#0FFF  #0888  #0000 - full transparency

Try this:

#aa000000

For transparency 000000 = black, you can change these six numbers for the color you want.

ImageView.setBackground(R.drawable.my_background);

ImageView.setBackgroundResource(R.color.colorPrimary);

ImageView.getImageAlpha();

ImageView.setAlpha(125); // transparency

use RelativeLayout which has 2 imageViews in . and set transparency code on the top imageView.

transparency code :

<solid android:color="@color/white"/>
<gradient android:startColor="#40000000"   android:endColor="#FFFFFFFF" android:angle="270"/>

Convert Percentage to hex using any online tool & than simply add it on front of color value

Example: using https://www.joshuamiron.com/percent-to-hex-converter

在此处输入图片说明

80% opacity would be

 <color name="opaque_80_percent">#CC000000</color>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM