Android Toast 用法总结

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

1.默认效果

Android Toast 用法总结_第1张图片

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

2.自定义显示位置效果

Android Toast 用法总结_第2张图片


Toast toast;
    toast = Toast.makeText(getApplicationContext(),"自定义位置Toast", Toast.LENGTH_LONG);
    toast.setGravity(Gravity.CENTER, 0, 0);
    toast.show();
3.带图片效果
Android Toast 用法总结_第3张图片

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 用法总结_第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.其他线程

Android Toast 用法总结_第5张图片

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

完整代码

1.Main,java

package com.example.testhandler;

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




    

    

    

    

    


3.custom.xml




    

    

        

        
    




原文出处:http://www.cnblogs.com/salam/archive/2010/11/10/1873654.html

你可能感兴趣的:(Android)