您的位置:首页 > 移动开发 > Android开发

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

2012-08-02 15:18 477 查看
http://blog.csdn.net/laukaka/article/details/7080456

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

1.默认效果



代码

[java] view
plaincopy

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

   

//这里如果没有显示出来的话看看是不是忘了加后面的.show()。

2.自定义显示位置效果



代码

[java] view
plaincopy

mToast = Toast.makeText(getApplicationContext(), "自定义位置Toast", Toast.LENGTH_LONG);  

mToast.setGravity(Gravity.CENTER, 0, 0);  

mToast.show();  


public void setGravity (int gravity, int xOffset, int yOffset)

 

3.带图片效果



 

代码

[java] view
plaincopy

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.完全自定义效果



代码

[java] view
plaincopy

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.其他线程



 代码

[java] view
plaincopy

new Thread(new Runnable() {  

    public void run() {  

        showToast();  

    }  

}).start();  

完整代码

1.Main,java

[java] view
plaincopy

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

[html] view
plaincopy

<?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

[html] view
plaincopy

<?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>  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息