11 พฤศจิกายน 2556

[Android Dev Tips] Graphical Layout ไม่แสดงภาษาไทย [ตัวหนังสือเป็นรูปสี่เหลี่ยม]


        อันนี้เป็นปัญหาที่พบกันได้บ่อยนัก เวลาที่จะให้แสดงภาษาไทยจะมีผู้ที่หลงเข้ามาอ่านบางคนประสบปัญหาข้อความไม่แสดง โดยจะแสดงเป็นรูปสี่เหลี่ยมตอนที่ออกแบบในหน้า Layout แต่พอมาทดสอบในเครื่องหรือ Emulator กลับแสดงได้ปกติ


        ปัญหาอันนี้แก้ได้ไม่ยากเลย แต่ต้องเล่าเรื่องภาษาไทยให้ฟังเล่นๆก่อน เดิมทีนั้นแอนดรอยด์ตอนที่ออกมาตอนแรกๆ ที่เป็น Pure Android หรือก็คือ Firmware ดั้งเดิมของ Android ไม่มีคีย์บอร์ดภาษาไทย (แค่พิมพ์ไทยไม่ได้ ไม่ได้หมายความว่าไม่สามารถแสดงภาษาไทยได้) ดังนั้นยุคก่อนๆที่ใช้ Pure Android กันจะต้องไปดาวน์โหลดคีย์บอร์ดเพิ่ม (ในขณะที่เจ้าอื่นๆอย่าง Samsung จะเอา Firmware ไปเพิ่มคีย์บอร์ดให้เลย) จนกระทั่ง Android 4.1 หรือ Jelly Bean ตัวแรกสุดที่มาพร้อมกับ Nexus 7 ได้เพิ่มคีย์บอร์ดภาษาไทยในตัวแล้ว จึงทำให้ไม่ต้องโหลดคีย์บอร์ดเพิ่ม



        เจ้าของบล็อกก็ไม่เข้าใจเหมือนกันว่าแค่ไม่มีคีย์บอร์ดไทยแล้วเกี่ยวไรกัน แต่ที่รู้ๆคือ เวลาแสดงภาษาไทยใน Graphical Layout จะต้องปรับ API ให้เป็นเวอร์ชัน 16 หรือ Jelly Bean ขึ้นไป ถึงจะแสดงภาษาไทยได้นั่นเอง

        และอีกอย่างหนึ่งที่เจ้าของบล็อกอยากเล่าให้ฟังก็คือ หน้า Graphical Layout เป็นเพียงแค่หน้าแสดงตัวอย่างเท่านั้น ซึ่งสามารถกำหนดได้ว่าจะแสดงหน้าจอขนาดเท่าไร แสดงเป็นภาษาอะไร และแสดงเป็น Android Version อะไร ดังนั้นไม่ได้หมายความว่าการแสดงผลในนี้ถูกต้อง แล้วเวลาไปแสดงในเครื่องจริงจะต้องเหมือนเป๊ะๆ ถ้าอยากให้แสดงเหมือนเครื่องจริง ต้องกำหนดค่าให้ตรงด้วย

        เวลาเปลี่ยน Android Version ใน Graphical Layout ให้กดที่ตำแหน่งตามรูป



        จากรูปจะเห็นว่าเจ้าของบล็อกกำหนดให้แสดงตัวอย่างเป็น 2.3.3 ดังนั้นจึงเกิดปัญหาไม่แสดงภาษาไทย แต่เจ้าของบล็อกไม่มี 4.1 ก็ไม่เป็นไร เพราะเลือก 4.2.2 ที่ใหม่กว่าแทนตามที่บอกไว้ก็ได้ เท่านี้ก็จะแสดงภาษาไทยได้แล้วล่ะ



        แต่ไม่รู้เป็นอะไร เจ้าของบล็อกเลือก 4.3 หรือ 4.4 แล้วไม่แสดงอะไรเลย น่าจะเป็นบั๊กมากกว่ามั้ง เพราะงั้นปกติแล้วเจ้าของบล็อกจะเลือก 4.2.2 แทน



        เท่านี้ก็แก้ปัญหาการแสดงภาษาไทยใน Graphical Layout ได้แล้วล่ะ แต่อย่าลืมล่ะว่า Graphical Layout แสดงตัวอย่างคร่าวๆเท่านั้น ดังนั้นถ้าอยากรู้ว่าทำงานได้จริงหรือป่าวก็ควรรันทดสอบดู



เหล่าพันธมิตรแอนดรอยด์

Devahoy Layer Net NuuNeoI The Cheese Factory Somkiat CC Mart Routine Artit-K Arnondora Kamonway Try to be android developer Oatrice Benz Nest Studios Kotchaphan@Medium Jirawatee@Medium Travispea@Medium