Saya ingin membuat Kegiatan transparan di atas kegiatan lain.
Bagaimana saya bisa mencapai ini?
Saya ingin membuat Kegiatan transparan di atas kegiatan lain.
Bagaimana saya bisa mencapai ini?
Tambahkan gaya berikut dalam res/values/styles.xml
file Anda (jika Anda tidak memilikinya, buatlah.) Berikut ini file lengkap:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources>
(Nilainya @color/transparent
adalah nilai warna #00000000
yang saya masukkan ke res/values/color.xml
file. Anda juga dapat menggunakan @android:color/transparent
versi Android yang lebih baru.)
Kemudian terapkan gaya tersebut ke aktivitas Anda, misalnya:
<activity android:name=".SampleActivity" android:theme="@style/Theme.Transparent">
...
</activity>
<item name="android:windowBackground">@android:color/transparent</item>
android:windowIsFloating
disetel ke true. Hapus properti ini untuk berperilaku seperti aktivitas normal (dalam hal ini akan cocokandroid:style/Theme.Translucent.NoTitleBar
)AppCompatActivity
. Begituparent="android:Theme"
juga menabrak aplikasi saya. Saya baru saja menghapusnya dan itu bekerja seperti pesona. Terima kasih!Bunyinya seperti ini:
sumber
50% black should be #7f000000
. Setiap komponen (A, R, G, B) dapat mengambil nilai dari0-255
.50% of 255 = 127. 127 in Hex = 7F
Itu cara menghitung transparansi (opacity)Di styles.xml:
Di AndroidManifest.xml:
sumber
Theme.Appcompat.Light.NoActionBar
darinya.background
dan menempatkan warna semi transparan pilihan Anda diwindowBackground
Nyatakan aktivitas Anda di manifes seperti ini:
Dan tambahkan latar belakang transparan ke tata letak Anda.
sumber
Tetapkan tema transparan ke aktivitas yang ingin Anda buat transparan dalam file manifes Android proyek Anda:
sumber
Saya ingin menambahkan ini sedikit karena saya juga seorang pengembang Android baru. Jawaban yang diterima sangat bagus, tetapi saya mengalami beberapa masalah. Saya tidak yakin bagaimana cara menambahkan warna ke file colors.xml. Inilah cara yang harus dilakukan:
colors.xml
Dalam file colors.xml asli saya, saya memiliki tag "drawable":
Jadi saya melakukan itu untuk warna juga, tapi saya tidak mengerti bahwa referensi "@ color /" berarti mencari tag "color" dalam XML. Saya pikir saya harus menyebutkan ini juga untuk membantu orang lain.
sumber
Saya mencapainya di 2.3.3 dengan hanya menambahkan
android:theme="@android:style/Theme.Translucent"
tag aktivitas di manifes.Saya tidak tahu tentang versi yang lebih rendah ...
sumber
AppCompatActivity
jika Anda menggunakan ini.Dalam kasus saya, saya harus mengatur tema pada runtime di java berdasarkan beberapa kondisi. Jadi saya membuat satu tema dengan gaya (mirip dengan jawaban lain):
Kemudian di Jawa saya menerapkannya pada aktivitas saya:
Ingat satu poin penting di sini: Anda harus memanggil
setTheme()
fungsi sebelumnyasuper.onCreate(savedInstanceState);
. Saya melewatkan poin ini dan berhenti selama 2 jam, berpikir mengapa tema saya tidak tercermin pada saat run time.sumber
Di fungsi onCreate , di bawah setContentView , tambahkan baris ini:
sumber
Biarkan saja gambar latar belakang aktivitas menjadi transparan. Atau tambahkan tema dalam file XML:
sumber
Cara termudah yang saya temukan adalah mengatur tema aktivitas di AndroidManifest menjadi
android:theme="@android:style/Theme.Holo.Dialog"
.Kemudian dalam metode onCreate aktivitas, panggil
getWindow().setBackgroundDrawable(new ColorDrawable(0));
.sumber
Untuk kegiatan dialog, saya menggunakan ini:
Tetapi Anda juga perlu mengatur Tampilan utama Anda dalam aktivitas menjadi tidak terlihat. Kalau tidak, latar belakang tidak akan terlihat sementara semua tampilan di dalamnya akan terlihat.
sumber
selain jawaban di atas:
untuk menghindari crash terkait aktivitas Android Oreo
sumber
Saya hanya melakukan dua hal, dan itu membuat kegiatan saya transparan. Mereka ada di bawah.
Dalam file manifes saya baru saja menambahkan kode di bawah ini di tag aktivitas .
Dan saya hanya mengatur latar belakang tata letak utama untuk aktivitas itu sebagai " # 80000000 ". Suka
Ini sangat cocok untuk saya.
sumber
Jika Anda menggunakan
AppCompatActivity
kemudian tambahkan inistyles.xml
Dalam
manifest
file Anda dapat menambahkan tema ini ke tag aktivitas seperti iniuntuk lebih jelasnya baca artikel ini
sumber
Tetapkan tema Tembus
sumber
Ada dua cara:
Menggunakan
Theme.NoDisplay
masih akan berfungsi ... tetapi hanya pada perangkat Android yang lebih lama. Pada Android 6.0 dan lebih tinggi, menggunakan Theme.NoDisplay tanpa memanggilfinish()
dionCreate() (or, technically, before onResume())
akan kecelakaan aplikasi Anda. Inilah sebabnya mengapa rekomendasi ini digunakanTheme.Translucent.NoTitleBar
, yang tidak menderita keterbatasan ini . "sumber
Catatan 1: Di folder Drawable buat test.xml dan salin kode berikut
// Catatan: Sudut dan bentuk sesuai kebutuhan Anda.
// Catatan 2: Buat xml:
sumber
Cukup tambahkan baris berikut ke tag aktivitas di file manifes Anda yang perlu terlihat transparan.
sumber
Semua jawaban itu mungkin membingungkan, ada perbedaan antara aktivitas Transparan dan Tidak ada aktivitas UI.
Menggunakan ini:
android:theme="@android:style/Theme.Translucent.NoTitleBar"
Akan membuat aktivitas transparan tetapi akan memblokir UI.
Jika Anda menginginkan aktivitas Tidak Ada UI selain menggunakan ini:
android:theme="@android:style/Theme.NoDisplay"
sumber
Anda dapat menghapus
setContentView(R.layout.mLayout)
dari aktivitas Anda dan menetapkan tema sebagaiandroid:theme="@style/AppTheme.Transparent"
. Periksa tautan ini untuk detail lebih lanjut.sumber