zoukankan      html  css  js  c++  java
  • android Toast大全(五种情形)建立属于你自己的Toast

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

    1.默认效果

    代码

    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();

    完整代码

    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>

  • 相关阅读:
    oracle 导入数据时提示只有 DBA 才能导入由其他 DBA 导出的文件
    oracle 常用语句
    android udp 无法收到数据 (模拟器中)
    android DatagramSocket send 发送数据出错
    AtCoder ABC 128E Roadwork
    AtCoder ABC 128D equeue
    AtCoder ABC 127F Absolute Minima
    AtCoder ABC 127E Cell Distance
    CodeForces 1166E The LCMs Must be Large
    CodeForces 1166D Cute Sequences
  • 原文地址:https://www.cnblogs.com/tfy1332/p/3652879.html
Copyright © 2011-2022 走看看