Tetapkan latar gambar transparan di Android


Jawaban:


571

Dalam XML Anda atur Backgroundatribut ke warna, White(#FFFFFF)warna atau Black(#000000)warna apa pun. Jika Anda ingin transparansi, masukkan saja 80 sebelum kode hash yang sebenarnya:

#80000000

Ini akan mengubah warna apa pun yang Anda inginkan menjadi transparan .. :)


3
@Harshad: Apakah mungkin untuk mengatur, katakanlah, transparansi 40% untuk gambar latar belakang dengan View.setBackgroundResource(R.drawable.something)?
Luis A. Florit

@ LuisA.Florit Saya menemukan tautan ini di mana Anda perlu mengalikan dengan 0,4 (40/100) ke nilai RGB Anda. Tidak yakin apakah ini membantu tetapi Anda bisa mencobanya. forums.esri.com/Thread.asp?c=93&f=1730&t=223940
Harshad

3
@ Harshad: Maaf, saya tidak mengerti jawaban Anda. Saya tidak memiliki nilai RGB, tetapi TextView dengan gambar latar belakang yang saya inginkan, katakanlah, 50% transparan. Tapi, bagaimanapun, saya menemukan jawabannya di sini di stackoverflow: View.getBackground().setAlpha(50). Tidak bisa lebih sederhana, bukan? : o) Bagaimanapun, terima kasih atas bantuan Anda !!
Luis A. Florit

21
Jika Anda menambahkan angka dari 01 hingga 99 sebelum kode hash yang sebenarnya, itu akan memberi Anda transparansi. Contoh: Hitam dengan lebih banyak transparansi - #10000000 Hitam dengan lebih sedikit transparansi - #99000000
AnhSirk Dasarp

64
@AnhSirkDasarp Tidak hanya dari 01 hingga 99, karena angka-angka lainnya juga heksadesimal sehingga Anda dapat meletakkan apa pun mulai dari 00 hingga ff. Untuk 50 persen transparan, Anda harus memasukkan 80 bukannya 50, dan untuk yang lain Anda harus melakukan perhitungan dasar ...
Nemanja Kovacevic

571

Anda dapat mengatur latar belakang transparan dari tata letak, tampilan, atau komponen apa pun dengan menambahkan kode ini dalam XML:

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

4
Saya memiliki masalah pada versi Android yang lebih lama yang tidak menangani # ff000000 sebagai transparan murni. Menggunakan ini memperbaikinya.
loeschg

11
Mungkin karena #FF 00 00 00 = 100% hitam.
Derk-Jan

3
@Ioeschg 2 huruf pertama adalah untuk saluran alpha. # 00xxxxxx akan transparan, sedangkan x adalah nilai hex yang Anda inginkan.
user1032613

10
Dan yang sederajat secara pemrograman jika seseorang tertarik adalah Android.Resource.Color.Transparent :)
leoneboaventura

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

179

Selain apa yang disebutkan Harshad:

Dua karakter heksadesimal dapat ditambahkan ke kode warna heksadesimal apa pun. Dua karakter pertama dalam kode warna hex 8-digit mewakili opacity-nya di Android.

Dua karakter heksadesimal dapat berkisar dari 00 hingga FF. Sebagai contoh,

  • Heksa hitam normal yang tidak jelas - "# 000000"
  • Sepenuhnya transparan - "# 00000000"
  • Sepenuhnya buram - "# FF000000"
  • 50% transparan - "# 7F000000"

Dengan cara ini Anda dapat mengubah warna apa pun ke tingkat transparansi apa pun.

Untuk menemukan awalan heksadesimal dari persentase:

Bagi angka persentase dengan 100 dan kalikan dengan 255 untuk mendapatkan nilai desimal. Ubah desimal menjadi heksadesimal di sini .

Misalnya, untuk 50%, 50/100 * 255 = 127. Dengan menggunakan tautan, kami mendapatkan nilai heksadesimal 7F.

Sumber: Android: cara membuat latar belakang transparan atau buram


3
sebenarnya, transparansi 50% sempurna adalah 7F dan bukan 80;)
shinyuX

147

Jika Anda ingin menambahkan transparansi 20% atau 30%, Anda harus menunggu lebih dulu dua karakter ke kode heksadesimal, seperti CC.

Catatan

android:background="#CCFF0088" dalam XML

di mana CC adalah nilai alfa, FF adalah faktor merah, 00 adalah faktor hijau, dan 88 adalah faktor biru.

Beberapa kode opacity:

Nilai Hex Opacity

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

Anda juga dapat mengatur opacity secara terprogram seperti:

yourView.getBackground().setAlpha(127);

Atur opacity antara 0 (sepenuhnya transparan) ke 255 (sepenuhnya buram). 127,5 tepat 50%.

Anda dapat membuat tingkat transparansi apa pun menggunakan rumus yang diberikan. Jika Anda ingin setengah transparan:

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

Dan untuk transparansi 25%:

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

42

Gunakan kode di bawah ini untuk warna hitam:

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

Sekarang jika Anda ingin menggunakan opacity maka Anda dapat menggunakan kode di bawah ini:

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

Dan di bawah ini untuk kode opacity:

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

Sudah ada konstanta yang ditentukan sebelumnya. Gunakan Color.TRANSPARENT.


1
Penggunaan konstanta harus menjadi cara terbaik / terbersih untuk melakukannya! Tetapi dalam kasus ini, nilai Color.TRANSPARENTdiatur ke 0x00000000(bukan yang diharapkan sepenuhnya buram 0xFF000000), jadi tergantung pada bagaimana Anda melakukannya, konstanta ini mungkin tidak benar-benar membantu mencapai transparansi! Masih memberi +1 untuk merekomendasikan konstanta!
Levite

24

Sudah ada transparan dibangun ke Android: R.color.transparent. http://developer.android.com/reference/android/R.color.html#transparent

Tapi saya pikir Anda mungkin ingin membuat latar belakang gambar yang Anda tempatkan di WebView transparan, misalnya, dengan PNG transparan, daripada latar belakang ImageView. Jika gambar yang sebenarnya sama sekali tidak tembus maka latar belakang ImageView tidak dapat dilihat melalui itu.


gambar adalah transparent..it didnt hav setiap background..i hv juga mencoba pengaturan ImageView latar belakang sebagai u hv said..but itu tidak bekerja ... plz help ..
mudit

Bisakah Anda memposting beberapa detail lainnya seperti tautan ke gambar yang Anda gunakan dan kode serta tata letak yang Anda gunakan?
Intrications

17

Jika Anda menginginkannya dalam kode, cukup:

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

13

Coba kode ini :)

Ini adalah kode hexa yang sepenuhnya transparan - "# 00000000"


10

Atau, sebagai alternatif, parsing ID sumber daya dengan kode berikut:

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

10

Di file XML Anda, atur atribut "Alpha"

seperti

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

Anda dapat memberikan nilai apa pun antara 0,0 hingga 1,0 dalam desimal untuk menerapkan transparansi yang diperlukan. Misalnya, 0,5 transparansi ideal untuk komponen yang dinonaktifkan


5

Bagi mereka yang masih menghadapi masalah ini, Anda dapat mencoba ini
element.getBackground().setAlpha(0);


Saya mendapatkanNullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setAlpha(int)' on a null object reference
IgorGanapolsky

1
@IgorGanapolsky: coba perhatikan elementapakah benda itu null
SuicideSheep

5

Gunakan yang berikut untuk transparansi lengkap:

#00000000

Ketika saya mencoba dengan # 80000000 saya mendapat overlay transparan hitam yang tidak saya inginkan. Cobalah untuk mengubah dua digit pertama; itu mengontrol tingkat transparansi, seperti

#00000000
#10000000
#20000000
#30000000

warna sempurna pada gelap transparan
Najib Ahmed Puthawala


4

Satu lagi cara sederhana:

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

4

Pilihan kerja lain yang saya temui adalah mengatur android:background="@null"


2

Anda juga bisa menggunakan View.setAlpha(float)untuk mengubah visibilitas secara tepat.

0 akan transparan, 1 sepenuhnya terlihat. ;)


1
Itu mengubah tampilan alpha, BUKAN latar belakangnya!
IgorGanapolsky

Seluruh tampilan kemudian akan transparan termasuk konten / gambar di dalamnya, pengaturan alpha Anda yang salah dalam hal ini. Pengguna ingin menjaga transparansi Gambar tidak mengubah Gambar menjadi transparan.
Haroun Hajem

2

Coba gunakan kode berikut. Ini akan membantu Anda secara penuh atau lebih.

  1. File .xml dirancang untuk menggunakan kode ini untuk mengatur warna latar belakang:

    android:background="#000000"

    atau

    android:background="#FFFFFF"

    Gambar ada di sini

    Atau Anda dapat mengaturnya secara terprogram juga.

  2. Anda juga dapat menggunakan kode ini secara terprogram:

    image.setBackgroundDrawable(getResources().getDrawable(
        R.drawable.llabackground));
  3. Juga kode ini untuk mengatur warna latar belakang juga secara terprogram:

    image.setBackgroundColor(Color.parseColor("#FFFFFF"));
  4. Kode ini untuk program yang sama:

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

Warnanya tergantung pada pilihan Anda yang warna yang ingin Anda gunakan untuk transparan. Sebagian besar menggunakan warna putih atau #FFFFFF.

Mengenai R.drawable.llabackground: Baris kode ini untuk gaya latar belakang Anda, seperti sesuatu yang istimewa atau berbeda untuk tujuan Anda. Anda juga bisa menggunakan ini.


2

Jika Anda menggunakan gambar XML yang dapat digambar, Anda dapat membuatnya transparan seperti yang ditunjukkan pada gambar di bawah ini, atau Anda dapat menggunakan kode warna:

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

Masukkan deskripsi gambar di sini


1

Definisi warna dengan informasi transparansi mungkin ada dalam formulir

#AARRGGBBatau #ARGB.

Anda juga dapat menggunakan nilai yang lebih pendek untuk transparansi penuh: # 0000 .

Nilai-nilai lain misalnya:

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
Meskipun kode ini dapat membantu menyelesaikan masalah, kode ini tidak menjelaskan mengapa dan / atau bagaimana ia menjawab pertanyaan. Memberikan konteks tambahan ini akan secara signifikan meningkatkan nilai jangka panjangnya. Harap edit jawaban Anda untuk menambahkan penjelasan, termasuk batasan dan asumsi apa yang berlaku.
Toby Speight

0

Coba ini:

#aa000000

Untuk transparansi 000000 = hitam, Anda dapat mengubah enam angka ini untuk warna yang Anda inginkan.


apa sumber daya Anda untuk menggunakan aa sebelum warna hex
Mina Fawzy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.