Transparansi Tampilan Navigasi Android

setiap orang. Apakah mungkin membuat Navigation View transparan? Saya memiliki tata letak khusus dan mencoba menyetel 50% latar belakang transparan untuk tata letak ini, Navigation View atau Drawer Layout.

android:background="#80000000"

tetapi itu tidak memberikan hasil yang diharapkan.

Adakah yang mencoba melakukan ini? Saya sangat menghargai bantuan.


person Peter Parker    schedule 16.01.2017    source sumber


Jawaban (4)


Anda dapat mencoba:

navigationView.getBackground().setAlpha(122);

Di sini Anda dapat mengatur opacity antara 0 (sepenuhnya transparan) hingga 255 (sepenuhnya buram).

Anda juga dapat menggunakan nilai XML alpha yang mengambil nilai ganda.

Kisarannya adalah dari 0f hingga 1f (inklusif), 0f transparan dan 1f buram:

android:alpha="0.0" tidak terlihat

android:alpha="0.5" tembus pandang

android:alpha="1.0" terlihat penuh

person rafsanahmad007    schedule 16.01.2017
comment
JFYI, Ini membuat kontennya juga transparan - person crgarridos; 05.07.2018

Jika Anda ingin transparansi dengan warna coba ini..

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
View headerView = navigationView.getHeaderView(0);
------
// you can even change only one from above to and keep the other one normally 
       navigationView.getBackground().setColorFilter(0x80000000, PorterDuff.Mode.MULTIPLY);
       headerView.getBackground().setColorFilter(0x80000000, PorterDuff.Mode.MULTIPLY);

Keluaran:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Jika Anda memerlukan informasi lebih lanjut tentang kode warna mana yang dapat Anda terapkan, periksa jawaban saya di sini


Atau jika Anda hanya ingin menyetel alpha gunakan navigationView.getBackground().setAlpha(intNumberTill256);

p.s Nav header berwarna gelap karena warna latar belakang yang saya berikan dalam XML-nya

person Charuක    schedule 16.01.2017
comment
Hebat, +1..! Juga sebagai pengguna teratas dalam tag Android, bisakah Anda menjawab pertanyaan singkat ini? Haruskah saya memiliki satu metode public static void main(){} untuk masing-masing kelas atau file atau proyek? - person stack; 18.01.2017
comment
@stack baiklah saya akan mengatakannya seperti ini, Pertama mengapa Anda menginginkan metode seperti itu? Kemudian jika menurut Anda itu adalah cara untuk memulai metode kelas pertama di Android..Tidak..Dalam program inti Java kita memerlukan metode main(), karena saat mengeksekusi kode byte, JVM akan mencari untuk metode main() di kelas dan mulai mengeksekusi di sana..Dalam kasus Android, ada manifes yang disertakan dalam setiap paket. Titik peluncuran ditentukan dalam manifes ini. Ini memulai eksekusi aplikasi dari metode kelas onCreate() yang ditentukan, jadi tidak diperlukan metode main() - person Charuක; 18.01.2017
comment
@stack baca tentang siklus hidup Android // Jika Anda ragu kirimkan komentar dan tanyakan stackoverflow.com/questions/8515936/ - person Charuක; 18.01.2017

Untuk membuat tampilan navigasi sepenuhnya transparan, ini berhasil bagi saya.

android:background="@android:color/transparent"
person Kaveri    schedule 03.05.2018
comment
Anda mungkin juga perlu menambahkan app:elevation="0dp" - person Iakovos Gu; 05.02.2020

Untuk membuat navigasi menjadi transparan, silakan coba kode di bawah ini

final Window window = getWindow();
    ObjectAnimator animator = ObjectAnimator.ofInt(window,
            "navigationBarColor", window.getNavigationBarColor(), Color.TRANSPARENT);
    animator.setEvaluator(new ArgbEvaluator());
    animator.setDuration(0);
    animator.start();
person Navas pk    schedule 16.01.2017
comment
#getNavigationBarColor() membutuhkan API 21 - person Peter Parker; 16.01.2017