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

it2024-12-15  45

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

1.默认用法

[html]  view plain  copy  print ? Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show();  

2.Fragment中的用法

[html]  view plain  copy  print ? Toast.makeText(getActivity(),"网络连接错误,请检察网络设置", Toast.LENGTH_LONG).show();  

3.自定义显示位置效果

[html]  view plain  copy  print ? toast = Toast.makeText(getApplicationContext(), "自定义位置Toast", Toast.LENGTH_LONG);  toast.setGravity(Gravity.CENTER, 0, 0);  toast.show();  

4.带图片效果

[html]  view plain  copy  print ? 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();  

5.完全自定义效果

[html]  view plain  copy  print ? 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();  

6.其他线程

Main.java打码 [html]  view plain  copy  print ? package com.wjq.toast;    import android.app.Activity;  import android.os.Bundle;  import android.os.Handler;  import android.view.Gravity;  import android.view.LayoutInflater;  import android.view.View;  import android.view.ViewGroup;  import android.view.View.OnClickListener;  import android.widget.ImageView;  import android.widget.LinearLayout;  import android.widget.TextView;  import android.widget.Toast;    public class Main extends Activity implements OnClickListener {      Handler handler = new Handler();        @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);            findViewById(R.id.btnSimpleToast).setOnClickListener(this);          findViewById(R.id.btnSimpleToastWithCustomPosition).setOnClickListener(this);          findViewById(R.id.btnSimpleToastWithImage).setOnClickListener(this);          findViewById(R.id.btnCustomToast).setOnClickListener(this);          findViewById(R.id.btnRunToastFromOtherThread).setOnClickListener(this);        }        public void showToast() {          handler.post(new Runnable() {                @Override              public void run() {                  Toast.makeText(getApplicationContext(), "我来自其他线程!",Toast.LENGTH_SHORT).show();              }          });      }        @Override      public void onClick(View v) {          Toast toast = null;          switch (v.getId()) {          case R.id.btnSimpleToast:              Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show();              break;          case R.id.btnSimpleToastWithCustomPosition:              toast = Toast.makeText(getApplicationContext(), "自定义位置Toast",Toast.LENGTH_LONG);              toast.setGravity(Gravity.CENTER, 0, 0);              toast.show();              break;          case R.id.btnSimpleToastWithImage:              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();              break;          case R.id.btnCustomToast:              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();              break;          case R.id.btnRunToastFromOtherThread:              new Thread(new Runnable() {                  public void run() {                      showToast();                  }              }).start();              break;          }      }  }   main.xml代码 [html]  view plain  copy  print ? <?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:gravity="center"      android:orientation="vertical"      android:padding="5dip" >        <Button          android:id="@+id/btnSimpleToast"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:text="默认" >      </Button>        <Button          android:id="@+id/btnSimpleToastWithCustomPosition"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:text="自定义显示位置" >      </Button>        <Button          android:id="@+id/btnSimpleToastWithImage"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:text="带图片" >      </Button>        <Button          android:id="@+id/btnCustomToast"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:text="完全自定义" >      </Button>        <Button          android:id="@+id/btnRunToastFromOtherThread"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:text="其他线程" >      </Button>    </LinearLayout>   custom.xml [html]  view plain  copy  print ? <?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:id="@+id/llToast"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:background="#ffffffff"      android:orientation="vertical" >        <TextView          android:id="@+id/tvTitleToast"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:layout_margin="1dip"          android:background="#bb000000"          android:gravity="center"          android:textColor="#ffffffff" />        <LinearLayout          android:id="@+id/llToastContent"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_marginBottom="1dip"          android:layout_marginLeft="1dip"          android:layout_marginRight="1dip"          android:background="#44000000"          android:orientation="vertical"          android:padding="15dip" >            <ImageView              android:id="@+id/tvImageToast"              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:layout_gravity="center" />            <TextView              android:id="@+id/tvTextToast"              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:gravity="center"              android:paddingLeft="10dip"              android:paddingRight="10dip"              android:textColor="#ff000000" />      </LinearLayout>    </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 }

转载于:https://www.cnblogs.com/jym-sunshine/p/5641216.html

相关资源:数据结构—成绩单生成器
最新回复(0)