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.

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

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

Saved successfully!

Ooh no, something went wrong!