Androidでimageviewの透明な背景を設定する


334

イメージビューを追加するWebビューを使用しています。この画像ビューの背景を透明に設定するにはどうすればよいですか?

私はこれを試しました:

mImageview.setBackgroundResource(R.color.trans);

どこtrans<color name="trans">#00000000 </color>


これはあなたを助けることができます。stackoverflow.com/questions/5445085/...
マーティンStanimirov

回答:


571

XMLで、Background属性を色、White(#FFFFFF)陰影、またはBlack(#000000)陰影に設定します。透過性が必要な場合は、実際のハッシュコードの前に80を追加するだけです。

#80000000

これにより、必要な色が透明な色に変更されます。


3
@ Harshad:たとえば、で設定された背景画像に40%の透明度を設定することは可能View.setBackgroundResource(R.drawable.something)ですか?
Luis A. Florit 2013年

@ LuisA.Florit RGB値に0.4(40/100)を掛ける必要があるこのリンクを見つけました。これが役立つかどうかはわかりませんが、試してみることができます。forums.esri.com/Thread.asp?c=93&f=1730&t=223940
Harshad

3
@ Harshad:申し訳ありませんが、あなたの答えは理解できませんでした。RGB値はありませんが、たとえば50%透明にしたい背景画像を含むTextViewがあります。しかし、とにかく、私はここstackoverflowで答えを見つけました:View.getBackground().setAlpha(50)。簡単にできないでしょう?:o)とにかく、あなたの助けに感謝します!!
Luis A. Florit 2013年

21
実際のハッシュコードの前に01から99までの数字を追加すると、透過性が得られます。例:透明度の高い#10000000 黒-透明度の 低い黒 #99000000
AnhSirk Dasarp 2013

64
@AnhSirkDasarp 01から99だけでなく、残りの数値も16進数なので、00からffまで何でも入力できます。50%の透過性については、50ではなく80を設定する必要があります。その他の場合は、基本的な計算を行う必要があります...
Nemanja Kovacevic

571

次のコードをXMLに追加することで、レイアウト、ビュー、またはコンポーネントの背景を透明に設定できます。

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

4
古いバージョンのAndroidで、#ff000000を純粋な透過として処理できないという問題がありました。これを使用して修正しました。
loeschg 2013年

11
おそらく#FF 00 00 00 = 100%黒です。
Derk-Jan 2013

3
@Ioeschg最初の2文字はアルファチャネル用です。#00xxxxxxは透過的ですが、xは任意の16進数値です。
user1032613 2013年

10
そして、誰かが興味を持っている場合、プログラム的に同等のものはAndroid.Resource.Color.Transparent :)です
leoneboaventura 2014年

3
@undroid tryandroid:background="#00ffffff"
ban-

179

Harshadが述べたことに加えて:

2つの16進文字を任意の16進カラーコードに追加できます。8桁の16進数のカラーコードの最初の2文字は、Androidでの不透明度を表します。

2つの16進文字の範囲は00からFFです。例えば、

  • 通常の不透明な黒い六角-「#000000」
  • 完全に透明-"#00000000"
  • 完全に不透明-「#FF000000」
  • 50%透明-"#7F000000"

このようにして、任意の色を任意のレベルの透明度に変更できます。

パーセントから16進数のプレフィックスを見つけるには:

パーセンテージ数を100で割り、255を掛けて、10進数値を取得します。ここで 10進数を16進数に変換します

たとえば、50%の場合、50/100 * 255 = 127です。リンクを使用して、16進数値7Fを取得します。

ソース:Android:透明または不透明な背景を作成する方法


3
実際には、完全な50%の透明度は7Fであり、80ではありません;)
shinyuX

147

20%または30%の透明度を追加する場合は、CCのように、16進コードの前に2文字追加する必要があります。

注意

android:background="#CCFF0088" XMLで

ここで、CCはアルファ値、FFは赤の係数、00は緑の係数、88は青の係数です。

いくつかの不透明度コード:

16進数の不透明度の値

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

次のようにプログラムで不透明度を設定することもできます。

yourView.getBackground().setAlpha(127);

不透明度を0(完全に透明)〜255(完全に不透明)に設定します。127.5はちょうど50%です。

指定された式を使用して、任意のレベルの透明度を作成できます。半分透明にする場合:

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

そして25%の透明性のために:

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

42

黒には以下のコードを使用します。

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

不透明度を使用したい場合は、以下のコードを使用できます。

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

そして、不透明度コードの以下:

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


27

すでに定義済みの定数があります。を使用しColor.TRANSPARENTます。


1
定数の使用は、それを回避するための最良/最もクリーンな方法である必要があります!ただし、この場合、の値は(予想される完全な不透明ではないColor.TRANSPARENT)に設定されているため、その方法によっては、この定数は透明度の実現に役立たない場合があります。定数を推奨するための+1です!0x000000000xFF000000
Levite、2015

24

Androidにはすでに透明が組み込まれています:R.color.transparent。http://developer.android.com/reference/android/R.color.html#transparent

ただし、ImageViewの背景ではなく、たとえば透明なPNGを使用して、WebViewに配置する画像の背景を透明にすることもできます。実際の画像がまったく透けていない場合、ImageViewの背景は透けて見えません。


画像は透明です。背景はありません.. i hvもimageviewの背景を設定しようとしましたが、これは機能しませんでした...
plz

使用している画像へのリンク、使用しているコードとレイアウトなどの詳細を投稿できますか?
複雑化


13

このコードを試してください:)

完全に透過的なヘキサコード- "#00000000"


10

または、代替として、次のコードでリソースIDを解析します。

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

10

XMLファイルで、属性「Alpha」を設定します

といった

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

0.0から1.0までの任意の値を10進数で指定して、必要な透明度を適用できます。たとえば、0.5の透明度は無効なコンポーネントに最適です


5

まだこの問題に直面している人は、これを試すことができます
element.getBackground().setAlpha(0);


私が取得NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setAlpha(int)' on a null object reference
IgorGanapolsky

1
@IgorGanapolsky:elementnullオブジェクトであるかどうかを確認してください
SuicideSheep

5

完全な透明性のために以下を使用します:

#00000000

#80000000で試したところ、不要な黒の透明オーバーレイが表示されました。最初の2桁を変更してみてください。透明度のレベルを制御します

#00000000
#10000000
#20000000
#30000000

透明なダークにぴったりの色
ナジブアフメドプタワラ



4

私が出会った別の作業オプションは設定することです android:background="@null"


2

を使用View.setAlpha(float)して、可視性を正確に変更することもできます。

0は透明、1は完全に表示されます。;)


1
これは、背景ではなくビューのアルファを変更します!
IgorGanapolsky

その後、コンテンツ/画像を含むビュー全体が透明になります。この場合、アルファの設定は間違っています。ユーザーは、画像を透明に変更せずに、画像の透明度を維持したいと考えています。
Haroun Hajem

2

次のコードを使用してみてください。それは完全にまたはより多くであなたを助けます。

  1. このコードを使用して背景色を設定するように設計された.xmlファイル:

    android:background="#000000"

    または

    android:background="#FFFFFF"

    画像はこちら

    または、プログラムで設定することもできます。

  2. また、このコードをプログラムで使用することもできます。

    image.setBackgroundDrawable(getResources().getDrawable(
        R.drawable.llabackground));
  3. また、プログラムで背景色を設定するこのコード:

    image.setBackgroundColor(Color.parseColor("#FFFFFF"));
  4. このプログラムの同じコード:

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

色は、透明に使用する色の選択によって異なります。ほとんどの場合、白または#FFFFFF色を使用します。

についてR.drawable.llabackground:このコード行は、特別なものや目的に応じたものなど、背景のスタイルに対応しています。これも使えます。


2

ドローアブルXML画像を使用する場合は、下の図に示すように透明にするか、カラーコードを使用できます。

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

ここに画像の説明を入力してください


1

透明度情報を含む色の定義は、

#AARRGGBBまたは#ARGB

完全な透明度には、より短い値#0000も使用できます 。

その他の値は次のとおりです。

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

0
ImageView.setBackground(R.drawable.my_background);

ImageView.setBackgroundResource(R.color.colorPrimary);

ImageView.getImageAlpha();

ImageView.setAlpha(125); // transparency

1
このコードは問題の解決に役立つ可能性がありますが、なぜまたはどのように質問に答えるは説明していません。この追加のコンテキストを提供すると、その長期的な価値が大幅に向上します。回答を編集して、適用される制限や前提条件などの説明を追加してください。
Toby Speight 2016年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.