Saya berjuang untuk membuat WebView dengan latar belakang transparan.
webView.setBackgroundColor(0x00FFFFFF);
webView.setBackgroundDrawable(myDrawable);
Lalu saya memuat halaman html dengan
<body style="background-color:transparent;" ...
Warna latar belakang WebView transparan tetapi segera setelah halaman dimuat, itu ditimpa oleh latar belakang hitam dari halaman html. Ini hanya terjadi di Android 2.2, berfungsi di Android 2.1.
Jadi apakah ada sesuatu untuk ditambahkan dalam kode halaman html untuk membuatnya benar-benar transparan?
android
background
webview
transparency
transparent
jptsetung
sumber
sumber
Jawaban:
Ini berhasil untuk saya,
sumber
android:hardwareAccelerated="true"
Di bagian bawah masalah yang disebutkan sebelumnya ada solusi. Ini kombinasi dari 2 solusi.
Saat menambahkan kode ini ke WebViewer setelah memuat url, ia berfungsi (API 11+).
Bahkan bekerja ketika akselerasi perangkat keras AKTIF
sumber
Saya memiliki masalah yang sama dengan 2.2 dan juga di 2.3. Saya memecahkan masalah dengan memberikan nilai alpa dalam html bukan di android. Saya mencoba banyak hal dan apa yang saya temukan adalah
setBackgroundColor();
warna tidak bekerja dengan nilai alpha.webView.setBackgroundColor(Color.argb(128, 0, 0, 0));
tidak akan berfungsi.jadi inilah solusi saya, berhasil untuk saya.
Dan di Jawa,
Dan inilah screenshot Output di bawah ini.
sumber
Sebenarnya ini adalah bug dan tidak ada yang menemukan solusi sejauh ini. Masalah telah dibuat. Bugnya masih ada di honeycomb.
Silakan beri bintang jika Anda menganggapnya penting: http://code.google.com/p/android/issues/detail?id=14749
sumber
Inilah cara Anda melakukannya:
Pertama-tama, buat proyek Anda berdasarkan 11, tetapi di AndroidManifest atur minSdkVersion ke 8
android: hardwareAccelerated = "false" tidak perlu, dan tidak kompatibel dengan 8
Untuk keamanan, letakkan ini sesuai gaya Anda:
bekerja untuk saya pada 2.2 dan 4
sumber
Yang paling penting tidak disebutkan.
Html harus memiliki
body
tag denganbackground-color
set ketransparent
.Jadi solusi lengkapnya adalah:
HTML
Aktivitas
sumber
kode di bawah ini berfungsi dengan baik Android 3.0+ tetapi ketika Anda mencoba kode ini di bawah Android 3.0 maka aplikasi Anda ditutup dengan paksa.
Anda mencoba kode di bawah ini pada API Anda kurang dari 11 .
Atau
Anda juga dapat mencoba kode di bawah ini yang berfungsi pada semua denda API .
penggunaan kode di atas penuh untuk saya.
sumber
Mencoba
webView.setBackgroundColor(0);
sumber
Kode berikut berfungsi untuk saya, meskipun saya memiliki beberapa tampilan web dan menggulir di antara keduanya agak lambat.
sumber
android:hardwareAccelerated="false"
di AndroidManifest untukactivity
elemen tersebut.v.setLayerType(LAYER_TYPE_SOFTWARE, null);
juga akan bekerja.Gunakan ini
sumber
webView.setBackgroundColor(Color.TRANSPARENT)
sebelum atau sesudahloadUrl()
/loadData()
.android:hardwareAccelerated="false"
dalam manifes.Diuji pada IceCream Sandwich
sumber
Cukup gunakan baris ini .....
Dan ingat titik yang selalu mengatur warna latar belakang setelah memuat data di tampilan web.
sumber
ini pasti akan berfungsi .. mengatur latar belakang dalam XML dengan Editbackground. Sekarang latar belakang itu akan ditampilkan
sumber
atur bg setelah memuat html (dari tes cepat sepertinya memuat html me-reset warna bg .. ini untuk 2.3).
jika Anda memuat html dari data yang sudah Anda dapatkan, cukup lakukan .postDelay di mana Anda baru saja mengatur bg (misalnya transparan) sudah cukup ..
sumber
Jika tampilan web dapat digulir:
Tambahkan ini ke Manifest:
ATAU
Tambahkan berikut ini ke WebView di tata letak:
Tambahkan yang berikut ke tampilan gulir orang tua:
sumber
Coba webView.setBackgroundColor (Color.parseColor ("# EDEDED"));
sumber
Saya mencoba untuk meletakkan overlay HTML transparan di atas tampilan GL saya tetapi selalu berkedip hitam yang mencakup pandangan GL saya. Setelah beberapa hari mencoba untuk menyingkirkan kerlipan ini saya menemukan solusi yang dapat diterima bagi saya (tetapi memalukan untuk android).
Masalahnya adalah saya perlu akselerasi perangkat keras untuk animasi CSS saya yang bagus dan karenanya
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
bukan pilihan bagi saya.Caranya adalah dengan meletakkan kedua (kosong)
WebView
antara tampilan GL saya dan overlay HTML. InidummyWebView
saya katakan untuk me-render dalam mode SW, dan sekarang overlay HTML saya menjadikannya mulus di HW dan tidak ada lagi flickering hitam.Saya tidak tahu apakah ini berfungsi pada perangkat lain selain My Acer Iconia A700, tapi saya harap saya bisa membantu seseorang dengan ini.
sumber
Ini berhasil untuk saya. coba atur warna latar belakang setelah data dimuat. untuk itu setWebViewClient pada objek tampilan web Anda seperti:
sumber
Mencoba:
sumber
Jika tidak ada yang membantu, maka kemungkinan besar Anda telah memperbaiki ukuran
webView
, mengubah lebar dan tinggi menjadi wrap_content ataumatch_parent
, itu seharusnya berfungsi. Itu bekerja untuk saya ketika saya mencoba memuat Gif.sumber
Anda dapat menggunakan BindingAdapter seperti ini:
Jawa
XML:
Sumber daya
sumber
adalah jawaban terbaik Berhasil!
sumber