การปรับเปลี่ยนลักษณะ Toast ของ Android Studio

Android Studio มี Toast ให้สำหรับแสดงข้อความง่าย ๆ เหมือนกับเป็น Message Box แต่ได้กำหนดตำแหน่งและรูปร่างเอาไว้ ไม่ค่อยน่าสนใจ เพราะ กำหนดให้อยู่ที่ตำแหน่งตรงกลาง ด้านล่าง และมีพื้นสีดี ตัวหนังสือสีขาว

แต่เราสามารถทำให้น่าสนใจ โดยเปลี่ยนสีพื้น เปลี่ยนตำแหน่ง เปลี่ยนขนาด หรือ จะเปลี่ยนสีตัวหนังสือด้วย ก็ได้

ข้างล่างนี้เป็นตัวอย่าง Toast ที่ปรับใช้แล้ว

การปรับเปลี่ยน Toast สามารถทำได้ โดยการสร้างไฟล์ Layout ที่เป็นไฟล์ xml แล้วปร้บเปลี่ยนตามต้องการ หรือ เรียกใช้ Default TextView ของ Toast มาปรับเปลี่ยน ก็ได้

ตัวอย่างข้างล่างนี้ เป็นการเรียกใช้ Default TextView มาปรับตามต้องการ

วิธีการ
  1. สร้างข้อความใน Strings.xml โดยใช้ชื่อว่า loading และ กำหนดข้อความ "กรุณา รอสักครู่"
    </resources>
    <string name="loading">กรุณา รอสักครู่...</string>
    </resources>


  2. สร้างไฟล์ xml ผมใช้ชื่อว่า toast_green_bkg.xml เอาไว้ในห้อง drawable สำหรับเป็นสีพื้นหลัง และกำหนดให้มุมโค้งมนตามต้องการ
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#228B22" />
    <stroke android:width="1dp"
       android:color="#006400" />
    <padding android:left="1dp"
       android:top="1dp"
       android:right="1dp"
       android:bottom="1dp" />
    <corners android:bottomRightRadius="7dp"
       android:bottomLeftRadius="7dp"
       android:topLeftRadius="7dp"
       android:topRightRadius="7dp" />
    </shape>


  3. เรียกใช้ Default TextView ของ Toast และ ปรับลักษณะตามต้องการ
       // เรียกใช้ Toast และใช้ข้อความที่กำหนด (loading ="กรุณา รอสักครู่")
       Toast toast = Toast.makeText(getBaseContext(), R.string.loading, Toast.LENGTH_SHORT);
       //ปรับตำแหน่ง อยู่กึ่งกลาง และ ค่อนไปทางด้านบน
       toast.setGravity(Gravity.TOP, 0, 200);
       //เรียกใช้ Default View ของ Toast เพื่อมาปรับแต่ง
       View toastView = toast.getView();
       //เปลี่ยนลักษณะพื้นหลังของ Toast ให้เป็นไปตามที่กำหนด
       //จากไฟล์ toast_green_bkg.xml
       toastView.setBackgroundResource(R.drawable.toast_green_bkg);
       //เรียกหา id ที่แสดงข้อความ จาก Default textview ของ Toast
       TextView text = toastView.findViewById(android.R.id.message);
       // message คือ id ของ TextView ของ Toast ของระบบ ที่เรียกมาด้วยคำสั่ง getView()
       //ปรับสีพื้นตัวอักษร กำหนดตัวหนา และกำหนดขนาด
       text.setTextColor(Color.parseColor("#ffffff"));
       text.setTypeface(null, Typeface.BOLD);
       text.setTextSize(24);
       toast.show();

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

อุปมา อุปไมย สำนวนการเปรียบเทียบ ของไทย

ความสามารถทั่วไปด้านเหตุผล การหาความสัมพันธ์จาก ภาพ สัญลักษณ์

แนวข้อสอบ เงื่อนไขสัญลักษณ์