พฤศจิกายน 22, 2017, 10:55:16 am *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: Using Custom Toast Message as Splash Screen  (อ่าน 2948 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
ShadowMan
Administrator
Hero Member
*****
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 8267


ShadowWares


| |
« เมื่อ: ธันวาคม 07, 2012, 12:22:02 pm »

Using Custom Toast Message as Splash Screen

ช่วงนี้มีเวลาว่างเล็กๆ น้อยๆ (ตามประสาคนอยากว่าง ถึงจะยุ่งก็ตาม) เลยหันมาสร้างกระแส Android กันสักหน่อย เพราะดูเหมือนว่า Android Section ใน Forum นี้จะเงียบเหงาเกินไปแล้ว
บทความว่าด้วย Android ที่ผมจะเขียนในหมวดนี้ จะสมมุติว่าผู้อ่าน มีพื้นฐานเกี่ยวกับ Java และ XML มาแล้วในระดับหนึ่ง และมีประสบการณ์ในการ
พัฒนา Android Application มาบ้างแล้ว นั่นคือสามารถใช้เครื่องมือที่เกี่ยวข้องได้ดีในระดับหนึ่งแล้ว
"ระดับหนึ่ง" ของความรู้ความสามารถวัดกันยาก ให้ลองอ่านบทความด้านล่างนี้ แล้วประเมินตัวเองว่าเข้าใจมากกว่า 60% ของสิ่งต่างๆ หรือไม่

มากกว่า 60% เมื่อทราบว่า Keyword ที่ผมใช้หมายความว่าอะไร หรือหากจะเพิ่ม ไฟล์ รูปภาพ และ resource ต่างๆ เข้ามาในโปรเจ็คต้องทำอย่างไร โปรแกรมที่จะเพิ่มไป ควรจะอยู่ที่ไฟล์ไหน ก่อน/หลังอะไรเป็นต้น หากเข้าใจและนึกภาพสิ่งเหล่านี้ออก คิดว่าคงพร้อมแล้วที่จะมาว่ากันในเรื่องของเทคนิค หากเข้าใจหรือตีความไม่ออกมากกว่า 60% น่าจะตีความได้ว่า ยังต่ำกว่า "ระดับหนึ่ง" ควรเบนเข็มไปหาบทความพื้นฐานศึกษากันก่อน น่าจะเป็นทางเลือกที่เหมาะสมกว่า (หวังว่าสักวันหนึ่ง ผมจะได้มีโอกาศได้เขียนบทความสำหรับผู้เริ่มต้นจาก 0)

ในบทความนี้ผมจะแนะนำเทคนิคการใช้ Toast Message
Toast Message คืออะไร?
มันคือ ข้อความหรือรูปภาพ ที่ปรากฎขึ้นมาตอนที่มีอะไรบางอย่างเกิดขึ้น แล้วจะหายไปเอง ในรูปแบบของ Alpha Transition/Blending (ค่อย ปรากฎขึ้นมา และค่อยๆ หายไป) เช่น


  - เมื่อเราเปิด Bluetooth จะมีข้อความ "Bluetooth is turned on" ปรากฎขึ้นมาชั่วครู่ แล้วข้อความนั้นจะหายไปเอง
  - เมื่อเราทำการคัดลอกข้อความบนจอจะมีคำว่า "Text is copied" ปรากฎขึ้นมาชั่วครู่ แล้วข้อความนั้นจะหายไปเอง
  - เมื่อการดาวน์โหลดไฟล์อะไรบางอย่างเสร็จสมบูรณ์จะมีข้อความบนจอจะมีคำว่า "Download Completed" ปรากฎขึ้นมาชั่วครู่ แล้วข้อความนั้นจะหายไปเอง

รูปด้านล่างเป็นตัวอย่างของ Toast Message เมื่อทำการ Post ข้อความเสร็จ


 


ในบทความนี้ผมจะใช้ ความสามารถของ Toast Message มาทำเป็น Splash Screen หรือ หน้าต่าง Start-up Screen นั่นคือเมื่อโปรแกรมถูกเปิดขึ้นมา จะมี Toast Message ปรากฎขึ้นมาชั่วครู่ แล้วจะหายไปเอง และนี่คือผลลัพธ์ที่ต้องการ:

           
(1) รันโปรแกรม    (2) แสดงผล Toast Message    (3) โปรแกรมพร้อมใช้งาน
 
จาก (2) รูปและข้อความนี้จะปรากฎขึ้นมาตอนที่โปรแกรมถูกปิด และจะแสดงผลอยู่ชั่วครู่ก่อนที่จะหายไปเอง
สิ่งที่เห็นมีข้อความ ที่มีสีและขนาดแตกต่างจากค่าที่ถูกกำหนดไว้ด้วยระบบ นอกจานี้ยังมีรูปภาพด้วย นั่นหมายความว่าเราจะต้องทำการสร้างสิ่งที่เห็นดังกล่าวขึ้นมาเอง นั่นเป็นเหตุผลว่าทำไมผมจึงเรียกว่า "Custom Toast Message"
การสร้างสิ่งแสดงผลใดๆ บน Android ทำได้หลายวิธี แต่วิธีที่ง่ายที่สุดคือสร้างไฟล์ XML ขึ้นมา รายละเอียดเป็นดังนี้:

Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/toast_layout_root"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="8dp"
              android:background="#000"
              >
    <ImageView android:src="@drawable/icon"
           android:contentDescription="@string/des_icon"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_marginRight="8dp"
               />
    <TextView android:id="@+id/text"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:textColor="#F00"
              android:textSize="40sp"
              />
</LinearLayout>
ในที่นี้จะ save ไฟล์นี้เป็น "toast_layout.xml"
อย่าลืมทำการเพิ่มรูปที่ชื่อ "icon.png" เข้าไปในโฟลเดอร์ ที่ชื่อ "drawable" ด้วย ไม่เช่นนั้นจะ Error
ที่เหลือ ไม่มีอะไรมากไปกว่า XML layout ธรรมดาๆ


ต่อไปทำการเขียน Java code กันเล็กน้อย มันคือ Function/Method สำหรับแสดงผล Toast Message นั่นเอง (เขียนที่ main activity)
Code: (java)

   public void onStartUp() {
      LayoutInflater inflater = getLayoutInflater();
      View layout = inflater.inflate(R.layout.toast_layout,
                            (ViewGroup) findViewById(R.id.toast_layout_root));
      TextView text = (TextView) layout.findViewById(R.id.text);
      text.setText("Welcome to Android World!");
      Toast toast = new Toast(getApplicationContext());
      toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
      toast.setDuration(Toast.LENGTH_LONG);
      toast.setView(layout);
      toast.show();
   }

ส่วนนี้ไม่มีอะไรพิเศษ เพียงแค่ทำการโหลด xml ของเราขึ้นมา และทำไปวางใน layout ตามด้วยสร้างข้อความที่ต้องการ และสั่งแสดงผล

สุดท้าย เนื่องจากว่าเราต้องการให้ Toast Message ของเราแสดงขึ้นมาตอนโปรแกรมเริ่มทำงาน เพราะฉนั้นก็ต้องเรียกใช้งานฟังก์ชั่นของเราตอนที่โปรแกรมเริ่มทำงานนั่นเอง

ที่ main activity มองหา ฟังก์ชั่นที่ชื่อ "onCreate" แล้วทำการเรียกฟังก์ชั่น "onStartUp" จากที่นั่น

Code: (java)

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Other initialization codes      
        onStartUp();
    }


การวาง onStartUp() ไว้ที่ onCreate() ทำให้ Toast Message ปรากฎขึ้นตอนที่โปรแกรมถูกเปิดขึ้นมา นั่นเป็นเหตุผลว่าทำไมผมเรียก Toast Message นี้ว่า "Splash Screen"
นอกจากนี้ก็สามารถ นำ Toast Message ไปใช้ในส่วนต่างๆ ได้อีกมากมาย เช่นเมื่อปุ่มกดถูกกด หรือเมื่อมีเหตุการอะไรบางอย่างที่ต้องการใช้ User ทราบ

โดยปรกติ Toast Message จะมาคู่กับโปรแกรมที่ทำงานในลักษณะ Service Application หรือโปรแกรมที่ทำงานอยู่เบื้องหลัง (ทำงานของมันไป ไม่มี GUI ให้เห็น) เช่นโปรแกรมในส่วนของการรับส่งข้อมูลต่างๆ เป็นต้น

พอหอมปากหอมคอครับ สำหรับบทความแรกในส่วน พื้นฐาน Android Programming
อย่าลืมนะครับ  Android Programming คือ Java Programming + XML Layout




ฝากไว้สำหรับผู้ที่รัก Android แต่เกลียดการเขียนโปรแกรม ให้ลองมองหาโปรแกรมที่ชื่อ Android Inventor ดูครับมันจะทำให้ชีวิตคุณง่ายขึ้นเหมือนการเล่นต่อจิ๊กซอเลยทีเดียว

บันทึกการเข้า

By SDW: Do No Wrong Is Do Nothing
          If you want to increase your success rate, double your failure rate
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป: