20.11.2016 Views

ANDROID APP

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

กรรมวิธี: การระบุรีซอร์สเพิ่มเติม<br />

ค่ารีซอร์สที่เราได้กำหนดไว้ในหัวข้อก่อนหน้านี้เป็นการกำหนดค่าคอนฟิกแบบทั่วๆ ไปที่มีใช้ใน<br />

แอพของแอนดรอยด์ ในบางครั้งผู้พัฒนาแอพอาจต้องการระบุค่าต่างๆ เพิ่มเติมขึ้นเองเพื่อให้รองรับ<br />

กับแอพที่พัฒนาขึ้น อย่างเช่นทำให้แอพสามารถแสดงผลได้หลายภาษา เป็นต้น<br />

วิธีทำให้แอพรองรับการแสดงผลได้หลายภาษานั้น เราต้องแปลข้อความที่จะแสดงผลนั้นไปเป็น<br />

ภาษาต่างๆ ตามที่ต้องการก่อน และนำไปกำหนดไว้ในไดเร็กทอรี values ยกตัวอย่างเช่น ภาษาอังกฤษ<br />

(อเมริกัน), ภาษาอังกฤษ (อังกฤษ), ภาษาฝรั่งเศส, ภาษาจีน, ภาษาจีน (ไต้หวัน) และภาษาเยอรมัน<br />

ก็ให้กำหนดดังนี้<br />

res/values-en-rUS/strings.xml<br />

res/values-en-rGB/strings.xml<br />

res/values-fr/strings.xml<br />

res/values-zh-rCN/strings.xml<br />

res/values-zh-rTW/strings.xml<br />

res/values-de/strings.xml<br />

ข้อความทั้งหมดที่จะใช้ในแอพนั้น ไม่จำเป็นต้องเก็บลงในไฟล์เหล่านี้ทั้งหมด เพราะถ้าระบบพบ<br />

ว่าข้อความที่ต้องการแสดงผลในภาษาที่เลือกไว้ไม่ได้ถูกกำหนดไว้ ระบบจะอ่านค่าจากไฟล์หลักของ<br />

ระบบแทน คือ res/values/strings.xml โดยไฟล์นี้จะเก็บข้อความทั้งหมดที่มีการใช้ในแอพ และถ้ามี<br />

รูปภาพที่มีข้อความแบบหลายภาษา เราก็สามารถกำหนดโครงสร้างของไดเร็กทอรีที่เก็บข้อมูลดังกล่าว<br />

ได้เช่นกัน อย่างเช่น res/drawables-zh-hdpi/<br />

สำหรับการกำหนดให้แอพรองรับการแสดงผลบนจอที่มีความละเอียดต่างกันนั้น รูปภาพประเภทที่<br />

ปรับเปลี่ยนขนาดได้ (Drawable) จะถูกนำมาใช้ในการแสดงผลด้วยการกำหนดให้โครงสร้างของ<br />

ไดเร็กทอรีระบุถึงความละเอียดระดับต่างๆ เช่นว่าเราสามารถกำหนดการแสดงรูปภาพด้วยความละเอียด<br />

ต่างๆ กันได้ดังนี้<br />

res/drawable-ldpi/<br />

res/drawable-mdpi/<br />

res/drawable-hdpi/<br />

โครงสร้างของรีซอร์สในไดเร็กทอรี และค่าแอททริบิวต์ที่เกี่ยวข้อง<br />

res/drawable-nodpi/<br />

ระดับความละเอียดต่ำ กลาง และสูงของจอภาพนั้น เรากำหนดค่าเป็น 120dpi, 160 dpi และ<br />

240 dpi ตามลำดับ โดยค่าทั้งหมดนี้เราไม่จำเป็นต้องใช้เรียกงานทั้งหมด เพราะในระหว่างที่แอพเริ่ม<br />

ทำงานนั้นระบบปฏิบัติการแอนดรอยด์จะเลือกใช้ค่าที่เหมาะสมกับฮาร์ดแวร์นั้นมากที่สุด ในไดเร็กทอรี<br />

ที่ระบุค่าเป็น nodpi จะใช้กับรูปภาพประเภทบิตแม็พในกรณีที่ไม่ต้องการให้รูปภาพนั้นถูกปรับขนาด<br />

ดังนั้นถ้ามีการระบุภาษาที่จะใช้และค่าความละเอียดของจอที่จะแสดงผล เราก็สามารถสร้างไดเร็กทอรี<br />

ที่ใช้ทำงานร่วมกับค่าทั้ง 2 นั้นได้ เช่น drawable-en-rUS-mdpi/<br />

เราได้พูดถึงขนาดของจอภาพที่ใช้แสดงผลบนอุปกรณ์แอนดรอยด์ไปแล้วในบทที่ 1 “ก้าวแรก<br />

กับแอนดรอยด์” การจัดโครงสร้างของไดเร็กทอรีรีซอร์สให้มีลักษณะตามที่บอกไปข้างต้นจะช่วยให้<br />

แอพสามารถแสดงผลบนจอภาพที่แตกต่างกันได้อย่างหลากหลาย ค่าอื่นๆ ที่เราสามารถนำมากำหนด<br />

รูปแบบการแสดงผลเพิ่มเติมมีดังนี้<br />

m การแสดงผลจอภาพแบบแนวตั้งและแนวนอน: -port และ -land<br />

m จอภาพแบบปกติ (QVGA, HVGA, VGA) และจอภาพแบบกว้าง (WQVGA, FWVGA,<br />

WVGA): -notlong และ -long<br />

81

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!