Tetapkan latar gambar transparan di Android

334

Saya menggunakan tampilan web di mana saya menambahkan tampilan gambar. Bagaimana cara mengatur latar belakang tampilan gambar ini menjadi transparan?

Saya sudah mencoba ini:

mImageview.setBackgroundResource(R.color.trans);

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

mudit
sumber
Ini dapat membantu Anda: stackoverflow.com/questions/5445085/…
Martin Stanimirov

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 .. :)

Harshad
sumber
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" 
Chirag Patel
sumber
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

Harun
sumber
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.
Zar E Ahmer
sumber
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

Narendra Sorathiya
sumber
27

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

Ahmad Dwaik 'Warlock'
sumber
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.

Intrikasi
sumber
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"));
Felipe Vasconcelos
sumber
13

Coba kode ini :)

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

Agilanbu
sumber
10

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

  mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));
Octoth0rpe
sumber
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

Jay Ryu
sumber
5

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

Bunuh Diri Bunuh
sumber
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
Ameen Maheen
sumber
warna sempurna pada gelap transparan
Najib Ahmed Puthawala
5

Di Android Studio sangat mudah untuk menyesuaikan warna dan opacity menggunakan alat bawaan:

Android Sesuaikan Opacity Warna

Jayakrishnan PM
sumber
klik saja. @PeterMortensen
Jayakrishnan PM
4

Satu lagi cara sederhana:

mComponentName.setBackgroundResource(android.R.color.transparent);
Andrei Aulaska
sumber
4

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

clwhisk
sumber
2

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

0 akan transparan, 1 sepenuhnya terlihat. ;)

jns
sumber
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.

Amitsharma
sumber
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

Tariqul
sumber
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
mendapat dua
sumber
0
ImageView.setBackground(R.drawable.my_background);

ImageView.setBackgroundResource(R.color.colorPrimary);

ImageView.getImageAlpha();

ImageView.setAlpha(125); // transparency
Ravi Naidu
sumber
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.

Alex Zaraos
sumber
apa sumber daya Anda untuk menggunakan aa sebelum warna hex
Mina Fawzy