Toast شخصی سازی شده در اندروید

Toast شخصی سازی شده در اندروید
وقتی روی دکمه ای در اپلیکیشن مورد نظرتان کلیک میکنید یا عملیاتی انجام میدهید، یک پنجره ی کوچک مانند نون تُست در پایین ظاهر میشود و اطلاعاتی به شما میدهد و بعد از چند ثانیه محو میشود، به این پنجره های کوچک در اندروید Toast میگوییم و در این مقاله میخواهیم این پنجره های کوچک را برای خودمان شخصی سازی کنیم.
 
سایت ساز سی می پلاس
در جشنواره طراحی سایت 20 تا 20 سی می پلاس وبسایت خود را بسازید و جایزه بگیرید
تصفیه هوا
سیستم تصفیه هوا هایدن ارایه شده توسط شرکت تهویه سپهر
خودتان را اینجا معرفی کنید

 پنجره های Toast به صورت پیش فرض تنها میتوانند یک تکه متن را نشان دهند و پس از چند ثانیه محو شوند، اما ما میتوانیم رنگ، سایز، مدت زمان نمایش و حتی عکس به آن اضافه کنیم.

دستور Toast به صورت پیشفرض در اندروید به حالت زیر هست :
Toast.makeText(context,"Your Text", duration).show();
برای مثال :
Toast.makeText(getApplicationContext(), "Here is default Toast",
                        Toast.LENGTH_LONG).show();
که به شکل زیر خواهد شد :

ساخت Toast شخصی سازی شده : 

ابتدا در صفحه ی main.xml یک دکمه قرار میدهم تا هنگام کلیک روی آن، Toast ما نمایش داده شود، کد صفحه ی xml مورد نظر به صورت زیر خواهد شد :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>
سپس باید یک لایه ی xml برای صفحه ی Toast مورد نظرمان طراحی کنیم، این طراحی میتواند به هرگونه ای باشد که شما علاقه دارید اما برای مثال من این طرح ساده را برای صفحه ی Toast اپلیکیشن طراحی میکنم :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/custom_toast_layout"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="8dp"
              android:background="#DAAA"
              >
    <ImageView android:src="@drawable/ic_launcher"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_marginRight="8dp"
               />
    <TextView android:id="@+id/textToShow"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textColor="#FFF"/>
</LinearLayout>
سپس با استفاده از Java مقادیر مورد نظرمان را به لایه ای که طراحی کردیم میدهیم
در اکتیویتی مورد نظرتان قطعه کد زیر را کپی کنید، در ادامه نحوه کارکرد این کد را توضیح خواهم داد
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;


public class ToastActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button button1 = (Button) findViewById(R.id.button1);

        button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Toast.makeText(getApplicationContext(), "Here is default Toast",
                        Toast.LENGTH_LONG).show();

            }
        });

    }
}

متد setOnClickListener را برای دکمه ای که به وجود آوردیم صدا میزنیم تا هنگام کلیک روی این دکمه Toast مورد نظر نشان داده شود. سپس درون متد از Inflator استفاده کردیم، Inflator به بیان ساده باعث میشود رابطه ای بین لایه ی xml ما و کدهای جاوا به وجود بیاید و ما از طریق کدهای Java بتوانیم به لایه ی خود دسترسی داشته باشیم و مقادیر آن را تغییر دهیم، پس از معرفی Inflator با استفاده از متدهایی که داریم مقادیر لایه ی xml را تغییر میدهیم. برای مثال با متد setGravity به لایه مورد نظرمان جاذبه میدهیم که در کجای صفحه قرار بگیرد و یا از طریق متد setDuraton مدت زمان نشان دادن پنجره ی Toast را تغییر میدهیم و در نهایت با استفاده از متد Show لایه ی Toast مورد نظرمان را نمایش میدهیم.
شکل مورد نظر در نهایت به صورت زیر خواهد شد :

نتیجه گیری

وجود Toast در اغلب اپلیکیشن ها بسیار مهم و ضروری میباشد و کاربران از طریق Toast هایی که برای آنها نمایش میدهید طریقه کارکرد اپلیکیشن شما را درک میکنند، برای مثال کاربر روی یک دکمه ی دانلود فایل کلیک میکند و یک Toast باز میشود و به کاربر میگوید "دانلود شما شروع شده است" و بعد از چند ثانیه Toast محو میشود. بنابراین سعی کنید هنگام عملیات مختلف از Toast استفاده کنید و با شخصی سازی Toast میتوانید اپلیکیشن خود را جذاب تر کنید، اما باید توجه کنید Toast های بسیار عجیب غریب نسازید چون اکثر کاربران به Toast های عادی و پیشفرض اندروید عادت دارند.


 

محمد یه دانشجوی فناوری اطلاعات هست که از سال 92 فعالیتش رو شروع کرد، در حال حاضر در زمینه ی برنامه نویسی تحت وب و اندروید و شبکه های ارتباطی سیسکو فعالیت میکنه .

نظرات و سوالات کاربران

ارسال پاسخ علی
علی
یکشنبه ۱۳ فروردین ۱۳۹۶ ۱۶:۰۲
عزیزم یادت رفته نصف آموزش ... همه سایت های ایرانی همینن.
قسمتی که برای Inflator کردن layout هست کداش نزاشتید
ارسال پاسخ araz
araz
پنج شنبه ۱۵ بهمن ۱۳۹۴ ۱۷:۵۰
شما که اصلا تو کد آخری از inflator استفاده نکردید! فقط همون نشون دادن تست ساده رو گذاشتید