浅谈android Toast五种样式 (让你的Toast更炫)

在写Toast之前我们应该需要了解下 Toast是干什么的 或者说他是用来完成那些事情的,为了便于大家理解呢,我以我自己理解的程度来给大家举例子 Toast 英语是 “吐司”的意思,但是为什么要将它取这个名字我不是很理解,现在我说下我理解的toast 的用途,我们可以将 toast理解成为一种通知,,也就是我们在操作Android 之后 Android系统反馈给我们的信息,或者数据!

我们将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();

完整代码

java Activity 程序代码:

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() {@Overridepublic 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;}}}

布局文件

不如意的时候不要尽往悲伤里钻,想想有笑声的日子吧

浅谈android Toast五种样式 (让你的Toast更炫)

相关文章:

你感兴趣的文章:

标签云: