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

不飞则已,一飞冲天;不鸣则已,一鸣惊人。这篇文章主要讲述android Toast大全(五种情形)建立属于你自己的Toast相关的知识,希望能为你提供帮助。
搬运而来,如有雷同。绝非意外!



Toast用于向用户显示一些帮助/提示。以下我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。
1.默认效果

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

文章图片

代码
Toast.makeText(getApplicationContext(), "默认Toast样式",
          Toast.LENGTH_SHORT).show();
 
2.自己定义显示位置效果
android Toast大全(五种情形)建立属于你自己的Toast

文章图片

代码
toast = Toast.makeText(getApplicationContext(),
          "自己定义位置Toast", Toast.LENGTH_LONG);
      toast.setGravity(Gravity.CENTER, 0, 0);
      toast.show();
 
3.带图片效果
android Toast大全(五种情形)建立属于你自己的Toast

文章图片

 
代码
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.全然自己定义效果
android Toast大全(五种情形)建立属于你自己的Toast

文章图片

【android Toast大全(五种情形)建立属于你自己的Toast】代码
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.其它线程
android Toast大全(五种情形)建立属于你自己的Toast

文章图片

  代码
new Thread(new Runnable() {
        public void run() {
          showToast();
        }
      }).start();
 
 
完整代码
1.Main,java
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;
    }
  }
}
 
2.main,xml
< ?
xml version="1.0" encoding="utf-8"?
>
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:padding="5dip" android:gravity="center">
  < Button android:layout_height="wrap_content"
    android:layout_width="fill_parent" android:id="@+id/btnSimpleToast"
    android:text="默认"> < /Button>
  < Button android:layout_height="wrap_content"
    android:layout_width="fill_parent" android:text="自己定义显示位置"
    android:id="@+id/btnSimpleToastWithCustomPosition"> < /Button>
  < Button android:layout_height="wrap_content"
    android:layout_width="fill_parent" android:id="@+id/btnSimpleToastWithImage"
    android:text="带图片"> < /Button>
  < Button android:layout_height="wrap_content"
    android:layout_width="fill_parent" android:text="全然自己定义"
    android:id="@+id/btnCustomToast"> < /Button>
  < Button android:layout_height="wrap_content"
    android:layout_width="fill_parent" android:text="其它线程"
    android:id="@+id/btnRunToastFromOtherThread"> < /Button>
< /LinearLayout>
 
3.custom.xml
< ?xml version="1.0" encoding="utf-8"?>
< LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_height="wrap_content" android:layout_width="wrap_content"
  android:background="#ffffffff" android:orientation="vertical"
  android:id="@+id/llToast" >
  < TextView
    android:layout_height="wrap_content"
    android:layout_margin="1dip"
    android:textColor="#ffffffff"
    android:layout_width="fill_parent"
    android:gravity="center"
    android:background="#bb000000"
    android:id="@+id/tvTitleToast" />
  < LinearLayout
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:id="@+id/llToastContent"
    android:layout_marginLeft="1dip"
    android:layout_marginRight="1dip"
    android:layout_marginBottom="1dip"
    android:layout_width="wrap_content"
    android:padding="15dip"
    android:background="#44000000" >
    < ImageView
      android:layout_height="wrap_content"
      android:layout_gravity="center"
      android:layout_width="wrap_content"
      android:id="@+id/tvImageToast" />
    < TextView
      android:layout_height="wrap_content"
      android:paddingRight="10dip"
      android:paddingLeft="10dip"
      android:layout_width="wrap_content"
      android:gravity="center"
      android:textColor="#ff000000"
      android:id="@+id/tvTextToast" />
  < /LinearLayout>
< /LinearLayout>

    推荐阅读