如何在Android开发中熟练使用五种Toast的特效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android开发中熟练使用五种Toast的特效相关的知识,希望对你有一定的参考价值。

  Toast是android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。默认效果,代码为:
  Toast.makeText(getApplicationContext(), "默认Toast样式", Toast.LENGTH_SHORT).show();

  自定义显示位置效果,代码为:
  toast = Toast.makeText(getApplicationContext(), "自定义位置Toast", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); toast.show();

  带图片效果,代码为:
  toast = Toast.makeText(getApplicationContext(), "带图片的Toast", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); LinearLayout toastView = (LinearLayout) toast.getView(); ImageView imageCodeProject = new ImageView(getApplicationContext()); imageCodeProject.setImageResource(R.drawable.icon); toastView.addView(imageCodeProject, 0); toast.show();
参考技术A

工具/原料

Eclipse

SDk


方法/步骤

1. Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。默认效果,代码为:

Toast.makeText(getApplicationContext(), "默认Toast样式", Toast.LENGTH_SHORT).show();


2. 自定义显示位置效果,代码为:

toast = Toast.makeText(getApplicationContext(),     "自定义位置Toast", Toast.LENGTH_LONG);   toast.setGravity(Gravity.CENTER, 0, 0);   toast.show();


3. 带图片效果,代码为:

toast = Toast.makeText(getApplicationContext(),     "带图片的Toast", Toast.LENGTH_LONG);   toast.setGravity(Gravity.CENTER, 0, 0);   LinearLayout toastView = (LinearLayout) toast.getView();   ImageView imageCodeProject = new ImageView(getApplicationContext());   imageCodeProject.setImageResource(R.drawable.icon);   toastView.addView(imageCodeProject, 0);   toast.show();


4. 完全自定义效果,代码为:

LayoutInflater inflater = getLayoutInflater();   View layout = inflater.inflate(R.layout.custom,     (ViewGroup) findViewById(R.id.llToast));   ImageView image = (ImageView) layout     .findViewById(R.id.tvImageToast);   image.setImageResource(R.drawable.icon);   TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);   title.setText("Attention");   TextView text = (TextView) layout.findViewById(R.id.tvTextToast);   text.setText("完全自定义Toast");   toast = new Toast(getApplicationContext());   toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);   toast.setDuration(Toast.LENGTH_LONG);   toast.setView(layout);   toast.show();


5. 其他线程,代码为:

new Thread(new Runnable()    public void run()     showToast();       ).start();

android源代码分析 android toast使用具体解释 toast自己定义

在安卓开发过程中。toast使我们常常使用的一个类。当我们须要向用户传达一些信息,可是不须要和用户交互时,该方式就是一种十分恰当的途径。

我们习惯了这样使用toast:Toast.makeText(Context context, String info, int duration).show();该方法是

系统为我们提供的一个方便的创建toast对象的静态方法,其内部依旧是调用toast的相关方法完毕。以下

就从其源代码对该类的实现做一个分析

在toast类中,最重要的用于显示该toast的show方法调用了service.enqueueToast(pkg, tn, mDuration);也就是说

系统为我们维持了一个toast队列,这也是为什么两个toast不会同一时候显示的原因。该方法将一个toast入队,显示则由系统维持显示的时机。

 private static INotificationManager sService;


    static private INotificationManager getService() {
        if (sService != null) {
            return sService;
        }
        sService = INotificationManager.Stub.asInterface(ServiceManager.getService("notification"));
        return sService;
    }
该服务sService就是系统用于维护toast的服务。

在toast内部又一个静态私有类TN,该类是toast的主要实现,该类完毕了toast视图的创建,等等


fa





以上是关于如何在Android开发中熟练使用五种Toast的特效的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android开发中熟练使用五种Toast的特效

android Toast大全(五种情形)建立属于你自己的Toast

android Toast大全(五种情形)建立属于你自己的Toast

跟我学Android之十 对话框

android开发中关于toast的使用

跟我学Android之十 对话框