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.
278 บทที่ 11 เทคนิคขั้นสูงสำาหรับพัฒนาแอพบนแอนดรอยด์<br />
ภายในคลาส myButton จะมีเมธอดจำนวน 8 ตัว ที่สามารถเรียกใช้งานได้ ดังนี้<br />
m setText() – ใช้กำหนดข้อความที่จะแสดงบนปุ่มกด<br />
m setTextSize() – ใช้กำหนดขนาดของข้อความ<br />
m setTextColor() –ใช้กำหนดสีของข้อความ<br />
m measureWidth() – ใช้กำหนดค่าความกว้างของปุ่มกด<br />
m measureHeight() – ใช้กำหนดค่าความสูงของปุ่มกด<br />
m drawArcs() – ใช้วาดเส้นโค้ง<br />
m onDraw() – ใช้วาดภาพกราฟิกลงบนปุ่ม<br />
m onMeasure() – ใช้กำหนดขนาดและขอบเขตการทำงานของปุ่มกด<br />
เมธอด setText(), setTextSize() และ setTextColor() จะเปลี่ยนแปลงค่าแอททริบิวต์<br />
ของข้อความ ทุกๆ ครั้งที่ข้อความมีการเปลี่ยนแปลง เมธอด invalidate() จะต้องถูกเรียกใช้งาน<br />
เพื่อแสดงผลข้อความใหม่พร้อมๆ กับค่าที่กำหนดไว้ เมธอด setText() และ setTextSize()<br />
จะเรียกใช้คำสั่ง requestLayout() แต่จะไม่เรียกใช้คำสั่งนี้ในเมธอด setTextColor() เพราะว่า<br />
การเปลี่ยนแปลงสีของข้อความนั้นไม่ได้ส่งผลถึงขนาดและขอบเขตของปุ่มกด<br />
ภายในเมธอด onMeasure() คำสั่ง setMeasureDimension() จะถูกเรียกใช้พร้อมกับคำสั่ง<br />
measureWidth() และ measureHeight() ซึ่งค่าเหล่านี้เป็นค่าที่จะต้องกำหนดในกรณีที่จะสร้างวิว<br />
ขึ้นเอง<br />
คำสั่ง measureWidth() และ measureHeight() จะถูกเรียกใช้พร้อมกับค่าความสูงของวิว<br />
หลัก พร้อมทั้งส่งค่าความสูงและความกว้างกลับโดยใช้หน่วยตามค่าที่กำหนดไว้ ถ้าเรากำหนดโหมด<br />
ของการวัดเป็น EXACTLY เมธอดก็จะส่งค่ากลับโดยการใช้ค่าที่ได้จากวิวหลัก แต่ถ้ากำหนดโหมดของ<br />
การวัดเป็น AT_MOST เมธอดก็จะส่งค่ากลับเป็นค่าที่ต่ำสุดของขนาดคอนเทนต์ อย่างในตัวอย่างของ<br />
เรานี้ ขนาดของคอนเทนต์จะอ้างอิงตามขนาดของข้อความ<br />
คำสั่ง drawArcs() เป็นคำสั่งที่ใช้วาดเส้นโค้งลงบนปุ่มกด ซึ่งเราสามารถทำให้เป็นภาพ<br />
เคลื่อนไหวได้ ทุกๆ ครั้งที่วาดเส้นโค้ง ความยาวของเส้นก็จะเพิ่มขึ้นเล็กน้อยและมีการไล่โทนสีเพื่อให้<br />
แสดงภาพเคลื่อนไหวที่สมบูรณ์<br />
คลาสที่ใช้สร้างปุ่มขึ้นเองนั้นจะแสดงไว้ในชุดคำสั่งที่ 11.1 โดยเมธอด myButton() 2 ตัวที่<br />
แสดงไว้นั้นจะเป็นไปตามค่าอาร์กิวเมนต์ที่กำหนดไว้ โดยในแต่ละตัวจะมีลาเบลและแอททริบิวท์ของ<br />
ตัวเอง ไลบรารี android.graphic.* จะมีการทำงานที่คล้ายกับที่ใช้ในภาษาจาวา เช่น คำสั่ง<br />
Matrix และ Paint