Android之Toast通知的几种自定义用法

Toast在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失。

1.默认用法

[html] view plain copy

print?

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

2.Fragment中的用法

[html] view plain copy

print?

  1. Toast.makeText(getActivity(),"网络连接错误,请检察网络设置", Toast.LENGTH_LONG).show();

3.自定义显示位置效果

[html] view plain copy

print?

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

4.带图片效果

[html] view plain copy

print?

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

5.完全自定义效果

[html] view plain copy

print?

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

6.其他线程

Main.java打码

[html] view plain copy

print?

  1. package com.wjq.toast;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.os.Handler;
  5. import android.view.Gravity;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.view.View.OnClickListener;
  10. import android.widget.ImageView;
  11. import android.widget.LinearLayout;
  12. import android.widget.TextView;
  13. import android.widget.Toast;
  14. public class Main extends Activity implements OnClickListener {
  15. Handler handler = new Handler();
  16. @Override
  17. public void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.main);
  20. findViewById(R.id.btnSimpleToast).setOnClickListener(this);
  21. findViewById(R.id.btnSimpleToastWithCustomPosition).setOnClickListener(this);
  22. findViewById(R.id.btnSimpleToastWithImage).setOnClickListener(this);
  23. findViewById(R.id.btnCustomToast).setOnClickListener(this);
  24. findViewById(R.id.btnRunToastFromOtherThread).setOnClickListener(this);
  25. }
  26. public void showToast() {
  27. handler.post(new Runnable() {
  28. @Override
  29. public void run() {
  30. Toast.makeText(getApplicationContext(), "我来自其他线程!",Toast.LENGTH_SHORT).show();
  31. }
  32. });
  33. }
  34. @Override
  35. public void onClick(View v) {
  36. Toast toast = null;
  37. switch (v.getId()) {
  38. case R.id.btnSimpleToast:
  39. Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show();
  40. break;
  41. case R.id.btnSimpleToastWithCustomPosition:
  42. toast = Toast.makeText(getApplicationContext(), "自定义位置Toast",Toast.LENGTH_LONG);
  43. toast.setGravity(Gravity.CENTER, 0, 0);
  44. toast.show();
  45. break;
  46. case R.id.btnSimpleToastWithImage:
  47. toast = Toast.makeText(getApplicationContext(), "带图片的Toast",Toast.LENGTH_LONG);
  48. toast.setGravity(Gravity.CENTER, 0, 0);
  49. LinearLayout toastView = (LinearLayout) toast.getView();
  50. ImageView imageCodeProject = new ImageView(getApplicationContext());
  51. imageCodeProject.setImageResource(R.drawable.icon);
  52. toastView.addView(imageCodeProject, 0);
  53. toast.show();
  54. break;
  55. case R.id.btnCustomToast:
  56. LayoutInflater inflater = getLayoutInflater();
  57. View layout = inflater.inflate(R.layout.custom,(ViewGroup) findViewById(R.id.llToast));
  58. ImageView image = (ImageView) layout.findViewById(R.id.tvImageToast);
  59. image.setImageResource(R.drawable.icon);
  60. TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
  61. title.setText("Attention");
  62. TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
  63. text.setText("完全自定义Toast");
  64. toast = new Toast(getApplicationContext());
  65. toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
  66. toast.setDuration(Toast.LENGTH_LONG);
  67. toast.setView(layout);
  68. toast.show();
  69. break;
  70. case R.id.btnRunToastFromOtherThread:
  71. new Thread(new Runnable() {
  72. public void run() {
  73. showToast();
  74. }
  75. }).start();
  76. break;
  77. }
  78. }
  79. }

main.xml代码

[html] view plain copy

print?

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:gravity="center"
  6. android:orientation="vertical"
  7. android:padding="5dip" >
  8. <Button
  9. android:id="@+id/btnSimpleToast"
  10. android:layout_width="fill_parent"
  11. android:layout_height="wrap_content"
  12. android:text="默认" >
  13. </Button>
  14. <Button
  15. android:id="@+id/btnSimpleToastWithCustomPosition"
  16. android:layout_width="fill_parent"
  17. android:layout_height="wrap_content"
  18. android:text="自定义显示位置" >
  19. </Button>
  20. <Button
  21. android:id="@+id/btnSimpleToastWithImage"
  22. android:layout_width="fill_parent"
  23. android:layout_height="wrap_content"
  24. android:text="带图片" >
  25. </Button>
  26. <Button
  27. android:id="@+id/btnCustomToast"
  28. android:layout_width="fill_parent"
  29. android:layout_height="wrap_content"
  30. android:text="完全自定义" >
  31. </Button>
  32. <Button
  33. android:id="@+id/btnRunToastFromOtherThread"
  34. android:layout_width="fill_parent"
  35. android:layout_height="wrap_content"
  36. android:text="其他线程" >
  37. </Button>
  38. </LinearLayout>

custom.xml

[html] view plain copy

print?

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/llToast"
  4. android:layout_width="wrap_content"
  5. android:layout_height="wrap_content"
  6. android:background="#ffffffff"
  7. android:orientation="vertical" >
  8. <TextView
  9. android:id="@+id/tvTitleToast"
  10. android:layout_width="fill_parent"
  11. android:layout_height="wrap_content"
  12. android:layout_margin="1dip"
  13. android:background="#bb000000"
  14. android:gravity="center"
  15. android:textColor="#ffffffff" />
  16. <LinearLayout
  17. android:id="@+id/llToastContent"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:layout_marginBottom="1dip"
  21. android:layout_marginLeft="1dip"
  22. android:layout_marginRight="1dip"
  23. android:background="#44000000"
  24. android:orientation="vertical"
  25. android:padding="15dip" >
  26. <ImageView
  27. android:id="@+id/tvImageToast"
  28. android:layout_width="wrap_content"
  29. android:layout_height="wrap_content"
  30. android:layout_gravity="center" />
  31. <TextView
  32. android:id="@+id/tvTextToast"
  33. android:layout_width="wrap_content"
  34. android:layout_height="wrap_content"
  35. android:gravity="center"
  36. android:paddingLeft="10dip"
  37. android:paddingRight="10dip"
  38. android:textColor="#ff000000" />
  39. </LinearLayout>
  40. </LinearLayout>   1 /**

    2 *另一种封装方式
     3 *
     4 */
     5 import android.content.Context;
     6 import android.view.Gravity;
     7 import android.view.LayoutInflater;
     8 import android.view.View;
     9 import android.view.ViewGroup;
    10 import android.widget.ImageView;
    11 import android.widget.LinearLayout;
    12 import android.widget.TextView;
    13 import android.widget.Toast;
    14 
    15 import com.letv.recorder.R;
    16 
    17 /**
    18  * Created by juyanming on 16/7/4.
    19  */
    20 public class ToastUtils {
    21 
    22     /**
    23      * 描述:系统Toast
    24      * @param context 应用上下文
    25      * @param str 消息框提示的文本内容
    26      */
    27     public void t_default(Context context,String str){
    28         Toast.makeText(context, str,
    29                 Toast.LENGTH_SHORT).show();
    30     }
    31 
    32     /**
    33      * 描述:自定义图片Toast
    34      * @param context 应用上下文
    35      * @param str   消息框提示的文本内容
    36      * @param imgId 图片id
    37      */
    38     public void t_img(Context context,String str,int imgId){
    39         Toast toast = Toast.makeText(context,
    40                 "带图片的Toast", Toast.LENGTH_LONG);
    41         toast.setGravity(Gravity.CENTER, 0, 0);
    42         LinearLayout toastView = (LinearLayout) toast.getView();
    43         ImageView imageCodeProject = new ImageView(context);
    44         imageCodeProject.setImageResource(imgId);
    45         toastView.addView(imageCodeProject, 0);
    46         toast.show();
    47     }
    48 
    49     /**
    50      *
    51      * @param context 应用上下文
    52      * @param str 消息框提示的文本内容
    53      * @param custom    布局
    54      * @param llToast  viewId
    55      * @param icon 图片id
    56      * @param tvImageToast  视图id
    57      * @param tvTitleToast
    58      * @param tvTextToast
    59      */
    60     public void t_complete(Context context,String str,int custom,int llToast,int icon,int tvImageToast,int tvTitleToast,int tvTextToast){
    61         LayoutInflater inflater = LayoutInflater.from(context);
    62         View layout = inflater.inflate(custom,
    63                 (ViewGroup) findViewById(R.id.llToast));
    64         ImageView image = (ImageView) layout
    65                 .findViewById(tvImageToast);
    66         image.setImageResource(icon);
    67         TextView title = (TextView) layout.findViewById(tvTitleToast);
    68         title.setText("Attention");
    69         TextView text = (TextView) layout.findViewById(tvTextToast);
    70         text.setText("完全自定义Toast");
    71         Toast toast = new Toast(context);
    72         toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
    73         toast.setDuration(Toast.LENGTH_LONG);
    74         toast.setView(layout);
    75         toast.show();
    76     }
    77 }

时间: 2024-10-03 14:03:41

Android之Toast通知的几种自定义用法的相关文章

android 之 Toast通知的使用

1.默认效果: 代码: Toast.makeText(getApplicationContext(), "默认Toast样式",      Toast.LENGTH_SHORT).show(); 2.自定义显示位置效果: 代码: toast = Toast.makeText(getApplicationContext(),      "自定义位置Toast", Toast.LENGTH_LONG);    toast.setGravity(Gravity.CENTE

【Win10开发】Toast通知

Toast 通知是一种发送给用户的暂时消息,包含相关的.具有时效性的信息,并且提供对应用中相关内容的快速访问.它可显示你是在另一个应用中.在“开始”屏幕上.在锁屏上,还是在桌面上.Toast 应该被视为一种邀请,邀请你返回你的应用以关注一些有趣的内容. 我们知道,在win8平台,toast通知会有诸多模板,而到了win10平台,你依然可以使用这些模板,而win10也提供了一种通用性通知.我们来看一下例子. <toast> <visual> <binding template=

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

Toast用于向用户显示一些帮助/提示.下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast. 1.默认效果 代码 Toast.makeText(getApplicationContext(), "默认Toast样式",     Toast.LENGTH_SHORT).show(); 2.自定义显示位置效果 代码 toast = Toast.makeText(getApplicationContext(),     "自定义位置Toast",

Android中Toast样式及自定义Toast

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout" android:layout_width="200dip" android:layout_height=&

Android 两种自定义ProgressBar

横向的ProgressBar 在res下创建drawable文件夹,新建文件drawable/progressbar_color.xml <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 背景 gradient是渐变,corners定义

【Android基础篇】使用ExpandableListView实现自定义的下拉列表

1. ExpandableListView简介 下拉列表(可扩展的列表控件)在App应用非常常见,在Android开发中是我们必须掌握的一个控件,下面就来介绍一下ExpandableListView这个控件的开发. ExpandableListView分为组列表项和子列表项,单击组列表项,会显示这组里所有的子列表项.和ListView一样,它也是通过Adapter数据适配器完成数据与显示的衔接,但它使用的另一种接口:ExpandableListAdapter. 今天我们要做的是实现一个继承它的父

WP8.1学习系列(第二章)——Toast通知

Toast 通知概述(Windows 运行时应用) 你的应用要想通过 Toast 通知通信,必须在应用的清单文件中声明它支持 Toast.Toast 通知可包含文本,并且 Windows 上的 Toast 通知可包含图像,但不支持辅助操作(例如按钮).Toast 还可在显示时播放系统定义的声音.在 Windows 上,Toast 通知显示在屏幕的右上角(对于从右到左 (RTL) 的语言,显示在左上角).在 Windows Phone 8.1 上,Toast 通知显示在屏幕顶部.Toast 通知可

Android开发:View的几种布局及实践

引言 View的布局显示方式有下面几种:线性布局(Linear Layout).相对布局(Relative Layout).表格布局(Table Layout).网格视图(Grid View).标签布局(Tab Layout).列表视图(List View).绝对布局(AbsoluteLayout).本文虽然是介绍View的布局方式,但不仅仅是这样,其中涉及了很多小的知识点,绝对能给你带来Android大餐! 本文的主要内容就是分别介绍以上视图的七种布局显示方式效果及实现,大纲如下: 1.Vie

*Android跨进程通信的四种方式

由于android系统中应用程序之间不能共享内存.因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些.在android SDK中提供了4种用于跨进程通讯的方式.这4种方式正好对应于android系统中4种应用程序组件:Activity.Content Provider.Broadcast和Service.其中Activity可以跨进程调用其他应用程序的Activity:Content Provider可以跨进程访问其他应用程序中的数据(以Cursor对象形式返回),当然,也可以对其他应