การจัดการบิตแมป

ลองใช้วิธีแบบ Compose
Jetpack Compose เป็นชุดเครื่องมือ UI ที่แนะนำสำหรับ Android ดูวิธีแสดงกราฟิกใน Compose

มีสาเหตุหลายประการที่ทำให้การโหลดบิตแมปในแอป Android เป็นเรื่องยาก ดังนี้

  • บิตแมปอาจใช้หน่วยความจำที่แอปได้รับอนุญาตจนหมดได้ง่ายมาก เช่น กล้องในโทรศัพท์ Pixel ถ่ายรูปได้สูงสุด 4048x3036 พิกเซล (12 เมกะพิกเซล) หากการกำหนดค่าบิตแมปที่ใช้คือ ARGB_8888, ซึ่งเป็นค่าเริ่มต้นสำหรับ Android 2.3 (API ระดับ 9) ขึ้นไป การโหลดรูปภาพเดียว ลงในหน่วยความจำจะใช้หน่วยความจำประมาณ 48 MB (4048*3036*4 ไบต์) ความต้องการหน่วยความจำที่สูงเช่นนี้ อาจใช้หน่วยความจำทั้งหมดที่แอปใช้ได้จนหมดในทันที
  • การโหลดบิตแมปในเธรด UI อาจทำให้ประสิทธิภาพของแอปแย่ลง ส่งผลให้ แอปตอบสนองช้าหรือแม้แต่แสดงข้อความ ANR ดังนั้นจึงควรจัดการ Threading อย่างเหมาะสมเมื่อทำงานกับบิตแมป
  • หากแอปโหลดบิตแมปหลายรายการลงในหน่วยความจำ คุณต้องจัดการ หน่วยความจำและการแคชดิสก์อย่างชำนาญ ไม่เช่นนั้น UI ของแอปอาจตอบสนองช้าและไม่ลื่นไหล

ในกรณีส่วนใหญ่ เราขอแนะนำให้คุณใช้ไลบรารี Glide เพื่อดึงข้อมูล ถอดรหัส และแสดงบิตแมปในแอป Glide จะช่วยลดความซับซ้อนส่วนใหญ่ ในการจัดการงานเหล่านี้และ งานอื่นๆ ที่เกี่ยวข้องกับการทำงานกับบิตแมปและรูปภาพอื่นๆ ใน Android หากต้องการข้อมูลเกี่ยวกับการใช้และการดาวน์โหลด Glide โปรดไปที่ ที่เก็บ Glide ใน GitHub

นอกจากนี้ คุณยังเลือกทำงานกับ API ระดับล่างที่สร้างขึ้นในเฟรมเวิร์ก Android ได้โดยตรง หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีดังกล่าว โปรดดู การโหลดบิตแมปขนาดใหญ่อย่างมีประสิทธิภาพ, การแคชบิตแมป และ การจัดการหน่วยความจำบิตแมป

แหล่งข้อมูลเพิ่มเติม