[Android Dev] :: SeekBar (แถบเลื่อน)

Widget ตัวนี้เป็นการเล่นกับ "ช่วง" ของตัวเลขนะครับ ^^~
ลักษณะก็จะเป็นแถบเลื่อนแบบนี้


เริ่มกันในส่วนของ Interface นะครับ...


ขั้นแรกบาสใส่ RelativeLayout เข้าไปก่อน >< (รู้สึกว่า บาสจะชอบ RelativeLayout เป็นพิเศษนะ)


จากนั้นก็ใส่ TextView และ SeekBar เข้าไปอย่างล่ะตัวนะ ^^
ส่วนของ TextView คงไม่อธิบายโค้ดนะครับ... พูดกันในเรื่องของ SeekBar

 - บรรทัดที่ 1-6 ก็เป็นการประกาศตัวแปร ขนาดความสูง ความกว้าง การจัดวาง
   คำสั่งก็เหมือนเดิมแหละครับ
 - บรรทัดที่ 7 android:max เป็นการกำหนดค่าสูงสุดของ Seekbar
 - บรรทัดที่ 8 android:progress เป็นการกำหนดค่าว่าเมื่อ รันโปรแกรมแล้ว seek จะอยู่ที่ตำแหน่งใด
   (ค่าที่กำหนดจะต้องอยู่ในช่วง 0 - max)

ส่วนของ Interface หลัก ๆ คงหมดเท่านี้แหละครับ Property ที่เหลือไปลองเล่นกันเองนะ ^^

มาในส่วนของ Java กันบ้าง...
เปิดไฟล์ .java ที่อยู่ใน scr มาเลยครับ ^^



จากนั้นก็ import ... (บรรทัดที่ 3-6)
               ประกาศตัวแปร (บรรทัดที่ 10,11)
               link กับ interface ให้เรียบร้อย (บรรทัด 18,19)


ให้เราเพิ่ม Listener ที่ชื่อว่า setOnSeekBarChangeListerner ให้กับ SeekBar ของเรา
เพื่อเช็คการเลื่อนแถบของเรา... (ใส่ไว้หลังจากการ link interface)


ต่อไปก็ให้เราเขียน innerClass ขึ้นมา... (พิมพ์แค่บรรทัดแรกพอมัน auto มาก็ enter เดี๋ยวมันขึ้นทั้งหมดให้)
โดยจะมี Method หลัก ๆ 3 อันคือ ...

 - onStopTrackingTouch
   ถูกเรียกใช้งานเมื่อหยุดเลื่อน SeekBar
 - onStartTrackingTouch
   ถูกเรียกใช้งานเมื่อเริ่มเลื่อน SeekBar
 - onProgressChanged
   ถูกเรียกใช้งานเมื่อมีการเลื่อนแถบ SeekBar

ในที่นี้บาสเรียกใช้เฉพาะ Method onProgressChanged แต่ "ห้าม" ลบ Method อื่นทิ้งนะ ^^ ต้องเขียนทิ้งไว้
ใน onProgressChanged บาสสั่งให้ setTextSize ให้กับ TextView ^^

โดยเราจะใช้ Method
          getProgess()  <-- Method ที่จะ return ค่าของ SeekBar (int)
แต่ Method setTextSize() นั้นรับค่าเป็น float เท่านั้น...
ดังนั้น Method getProgress() ของ SeekBar ที่ return ค่ากลับมาเป็น int เราต้องเปลี่ยนเป็น float ซะก่อน


โปรแกรมที่ได้ ก็จะมีหน้าตาประมาณนี้ครับ


เราก็จะสามารถเลื่อน เพื่อเปลี่ยน Size ของตัวอักษรใน TextView ได้... ลองดูสิครับ...

ขอจบ Blog เพียงเท่านี้นะครับ... ^^

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22