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

android Toast五种酷炫样式

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

我们将toast理解为是一种通知,下面的样式我们就可以理解为不同形式的通知了,例如有的通知就是一张白纸然后上面的黑字,还有的或许就华丽些了,采用的是 彩纸 和 彩笔 后来更华丽了,那我估计就应该是 “请柬” 这种样子了!可以做到 图文并茂的效果了!

下面让我们一起来看看这些 “通知单”的效果!

 

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

1.默认效果



代码:

[java] view
plain copy

 print?

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

Toast.LENGTH_SHORT).show();  

 

2.自定义显示位置效果



 

代码

[java] view
plain copy

 print?

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

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

toast.show();  

 

3.带图片效果



 

代码

[java] view
plain copy

 print?

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
plain copy

 print?

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
plain copy

 print?

new Thread(new Runnable() {  

    public void run() {  

     showToast();  

    }  

   }).start();  

 

 

完整代码

java  Activity 程序代码:

1.Main,java

[java] view
plain copy

 print?

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

[html] view
plain copy

 print?

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

 print?

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

  

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: