ความโปร่งใสของมุมมองการนำทาง Android

ทุกคน. เป็นไปได้ไหมที่จะทำให้ Navigation View โปร่งใส? ฉันมีเลย์เอาต์ที่กำหนดเองและพยายามตั้งค่าพื้นหลังโปร่งใส 50% สำหรับเลย์เอาต์นี้ Navigation View หรือ Drawer Layout

android:background="#80000000"

แต่มันไม่ได้ให้ผลลัพธ์ที่คาดหวัง

มีใครพยายามทำเช่นนี้บ้างไหม? ฉันขอขอบคุณความช่วยเหลือ


person Peter Parker    schedule 16.01.2017    source แหล่งที่มา


คำตอบ (4)


คุณสามารถลอง:

navigationView.getBackground().setAlpha(122);

ที่นี่คุณสามารถตั้งค่าความทึบระหว่าง 0 (โปร่งใสเต็มที่) ถึง 255 (ทึบแสงโดยสิ้นเชิง)

คุณยังสามารถใช้ค่า XML alpha ที่รับค่าสองเท่าได้

ช่วงคือตั้งแต่ 0f ถึง 1f (รวม) 0f คือโปร่งใส และ 1f คือทึบแสง:

android:alpha="0.0" มองไม่เห็น

android:alpha="0.5" ซีทรู

android:alpha="1.0" มองเห็นได้เต็มตา

person rafsanahmad007    schedule 16.01.2017
comment
JFYI ทำให้เนื้อหามีความโปร่งใสด้วย - person crgarridos; 05.07.2018

หากคุณต้องการความโปร่งใสด้วยสีลองสิ่งนี้..

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);

เอาต์พุต:

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับรหัสสีที่คุณสามารถใช้ ตรวจสอบคำตอบของฉันได้ที่นี่


หรือถ้าคุณต้องการตั้งค่า อัลฟา ให้ใช้ navigationView.getBackground().setAlpha(intNumberTill256);

ป.ล. ส่วนหัว Nav สีเข้มเนื่องจากเป็นสีพื้นหลังที่ฉันให้ไว้ใน XML

person Charuක    schedule 16.01.2017
comment
เยี่ยมเลย +1 ..! ในฐานะผู้ใช้อันดับต้นๆ ในแท็ก Android คุณช่วยตอบคำถามสั้นๆ นี้ได้ไหม ฉันควรมีหนึ่ง public static void main(){} วิธีการสำหรับแต่ละ class หรือ file หรือ project หรือไม่ - person stack; 18.01.2017
comment
@stack ฉันจะพูดแบบนี้ก่อนอื่นทำไมคุณถึงต้องการวิธีการแบบนั้น? จากนั้น ถ้าคุณคิดว่านั่นควรเป็นวิธีในการเริ่มเมธอด fest ของคลาสใน android..ไม่ใช่..ในโปรแกรม core Java เราจำเป็นต้องมีเมธอด main() เพราะในขณะที่รันโค้ดไบต์ JVM จะค้นหา สำหรับเมธอด main() ในคลาสและเริ่มดำเนินการที่นั่น..ในกรณีของ Android จะมีรายการรวมอยู่ในแต่ละแพ็คเกจ มีการระบุจุดเรียกใช้งานไว้ในไฟล์ Manifest นี้ โดยจะเริ่มการทำงานของแอปพลิเคชันจากเมธอดคลาส onCreate() ที่ระบุ ดังนั้นจึงไม่จำเป็นต้องใช้เมธอด main() - person Charuක; 18.01.2017
comment
@stack อ่านเกี่ยวกับวงจรชีวิตของ Android // หากคุณมีข้อสงสัยใดๆ โปรดแสดงความคิดเห็นและถาม stackoverflow.com/questions/8515936/ - person Charuක; 18.01.2017

เพื่อให้มุมมองการนำทางโปร่งใสอย่างสมบูรณ์ สิ่งนี้ได้ผลสำหรับฉัน

android:background="@android:color/transparent"
person Kaveri    schedule 03.05.2018
comment
คุณอาจต้องเพิ่ม app:elevation="0dp" - person Iakovos Gu; 05.02.2020

เพื่อให้การนำทางมีความโปร่งใส โปรดลองใช้โค้ดด้านล่าง

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() ต้องใช้ API 21 - person Peter Parker; 16.01.2017