Android Toast用法详解(各种自定义Toast)

来源:互联网 发布:好的配音软件 编辑:程序博客网 时间:2024/06/01 08:45

Toast是一种提供给用户简洁信息的视图。Toast类帮助你创建和显示该信息。

该视图已浮于应用程序之上的形式呈现给用户。因为它并不获得焦点,即使用户正在输入什么也不会受到影响。它的目标是尽可能已不显眼的方式,使用户看到你提供的信息。有两个例子就是音量控制和设置信息保存成功。

使用该类最简单的方法就是调用一个静态方法,让他来构造你需要的一切并返回一个新的 Toast 对象。

1、我们首先来看看Toast常用 的默认效果:


2、我们还可以自定义位置:


3、带图片的:


4、完全实现我们自己的自定义效果:


5、可以由其它线程更新:



查看源代码:

HelloToastActivity.java

package hb.android.hellotoast;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.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;public class HelloToastActivity extends Activity {/** Called when the activity is first created. */Button btn_default;Button btn_define;Button btn_all_define;Button btn_image_define;Button btn_other_thread;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initButton();btn_all_define.setOnClickListener(new MyOnClickListerer());btn_define.setOnClickListener(new MyOnClickListerer());btn_other_thread.setOnClickListener(new MyOnClickListerer());btn_image_define.setOnClickListener(new MyOnClickListerer());btn_default.setOnClickListener(new MyOnClickListerer());}public void initButton() {btn_all_define = (Button) findViewById(R.id.btn_all_define);btn_default = (Button) findViewById(R.id.btn_default);btn_define = (Button) findViewById(R.id.btn_define);btn_image_define = (Button) findViewById(R.id.btn_image_define);btn_other_thread = (Button) findViewById(R.id.btn_other_thread);}private class MyOnClickListerer implements OnClickListener {Handler handler = new Handler();@Overridepublic void onClick(View v) {if (v == btn_default) {Toast.makeText(getApplicationContext(), "这 是默认效果",Toast.LENGTH_SHORT).show();} else if (v == btn_define) {Toast toast = Toast.makeText(getApplicationContext(),"这是自定义位置", Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();} else if (v == btn_image_define) {Toast toast = Toast.makeText(getApplicationContext(), "这是带图片的",Toast.LENGTH_SHORT);LinearLayout toastView = (LinearLayout) toast.getView();ImageView imageCodeProject = new ImageView(getApplicationContext());imageCodeProject.setImageResource(R.drawable.ic_launcher);toastView.addView(imageCodeProject, 0);toast.show();} else if (v == btn_all_define) {LayoutInflater inflater = getLayoutInflater();View view = inflater.inflate(R.layout.custom, null);ImageView iv = (ImageView) view.findViewById(R.id.tvImageToast);iv.setImageResource(R.drawable.ic_launcher);TextView title = (TextView) view.findViewById(R.id.tvTitleToast);title.setText("Attention");TextView text = (TextView) view.findViewById(R.id.tvTextToast);text.setText("完全自定义Toast");Toast toast = new Toast(getApplicationContext());toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);toast.setDuration(Toast.LENGTH_LONG);toast.setView(view);toast.show();} else if (v == btn_other_thread) {new Thread(new Runnable() {public void run() {System.out.println("d");showToast();}}).start();}}public void showToast() {handler.post(new Runnable() {@Overridepublic void run() {Toast.makeText(getApplicationContext(), "我来自其他线程!",Toast.LENGTH_SHORT).show();}});}}}

custom.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/llToast"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="#ffffffff"    android:orientation="vertical" >    <TextView        android:id="@+id/tvTitleToast"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_margin="1dip"        android:background="#bb000000"        android:gravity="center"        android:textColor="#ffffffff" />    <LinearLayout        android:id="@+id/llToastContent"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginBottom="1dip"        android:layout_marginLeft="1dip"        android:layout_marginRight="1dip"        android:background="#44000000"        android:orientation="vertical"        android:padding="15dip" >        <ImageView            android:id="@+id/tvImageToast"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center" />        <TextView            android:id="@+id/tvTextToast"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:gravity="center"            android:paddingLeft="10dip"            android:paddingRight="10dip"            android:textColor="#ff000000" />    </LinearLayout></LinearLayout>

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical"     android:gravity="center_horizontal">    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="建立属于你自己的Toast" />    <Button         android:id="@+id/btn_default"        android:text="默认"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center_horizontal"/>        <Button         android:id="@+id/btn_define"        android:text="自定义位置"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center_horizontal"/>        <Button         android:id="@+id/btn_image_define"        android:text="带图片"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center_horizontal"/>        <Button         android:id="@+id/btn_all_define"        android:text="完全自定义效果"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center_horizontal"/>         <Button         android:id="@+id/btn_other_thread"        android:text="来自其它纯种"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center_horizontal"/></LinearLayout>

源码下载:Android  Toast用法详解(各种自定义Toast)

原创粉丝点击