Toast的自定义用法

来源:互联网 发布:西安消毒供应软件 编辑:程序博客网 时间:2024/06/11 21:54

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();

完整代码

1.Main,java

[java] view plaincopyprint?
  1. package com.wjq.toast;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.os.Handler;
  5. import android.view.Gravity;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.view.View.OnClickListener;
  10. import android.widget.ImageView;
  11. import android.widget.LinearLayout;
  12. import android.widget.TextView;
  13. import android.widget.Toast;
  14. public class Main extends Activity implements OnClickListener {
  15. Handler handler = new Handler();
  16. @Override
  17. public void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.main);
  20. findViewById(R.id.btnSimpleToast).setOnClickListener(this);
  21. findViewById(R.id.btnSimpleToastWithCustomPosition).setOnClickListener(
  22. this);
  23. findViewById(R.id.btnSimpleToastWithImage).setOnClickListener(this);
  24. findViewById(R.id.btnCustomToast).setOnClickListener(this);
  25. findViewById(R.id.btnRunToastFromOtherThread).setOnClickListener(this);
  26. }
  27. public void showToast() {
  28. handler.post(new Runnable() {
  29. @Override
  30. public void run() {
  31. Toast.makeText(getApplicationContext(), "我来自其他线程!",
  32. Toast.LENGTH_SHORT).show();
  33. }
  34. });
  35. }
  36. @Override
  37. public void onClick(View v) {
  38. Toast toast = null;
  39. switch (v.getId()) {
  40. case R.id.btnSimpleToast:
  41. Toast.makeText(getApplicationContext(), "默认Toast样式",
  42. Toast.LENGTH_SHORT).show();
  43. break;
  44. case R.id.btnSimpleToastWithCustomPosition:
  45. toast = Toast.makeText(getApplicationContext(),
  46. "自定义位置Toast", Toast.LENGTH_LONG);
  47. toast.setGravity(Gravity.CENTER, 0, 0);
  48. toast.show();
  49. break;
  50. case R.id.btnSimpleToastWithImage:
  51. toast = Toast.makeText(getApplicationContext(),
  52. "带图片的Toast", Toast.LENGTH_LONG);
  53. toast.setGravity(Gravity.CENTER, 0, 0);
  54. LinearLayout toastView = (LinearLayout) toast.getView();
  55. ImageView imageCodeProject = new ImageView(getApplicationContext());
  56. imageCodeProject.setImageResource(R.drawable.icon);
  57. toastView.addView(imageCodeProject, 0);
  58. toast.show();
  59. break;
  60. case R.id.btnCustomToast:
  61. LayoutInflater inflater = getLayoutInflater();
  62. View layout = inflater.inflate(R.layout.custom,
  63. (ViewGroup) findViewById(R.id.llToast));
  64. ImageView image = (ImageView) layout
  65. .findViewById(R.id.tvImageToast);
  66. image.setImageResource(R.drawable.icon);
  67. TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
  68. title.setText("Attention");
  69. TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
  70. text.setText("完全自定义Toast");
  71. toast = new Toast(getApplicationContext());
  72. toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
  73. toast.setDuration(Toast.LENGTH_LONG);
  74. toast.setView(layout);
  75. toast.show();
  76. break;
  77. case R.id.btnRunToastFromOtherThread:
  78. new Thread(new Runnable() {
  79. public void run() {
  80. showToast();
  81. }
  82. }).start();
  83. break;
  84. }
  85. }
  86. }


2.main,xml

[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"android:padding="5dip"android:gravity="center">
  5. <Button android:layout_height="wrap_content"
  6. android:layout_width="fill_parent"android:id="@+id/btnSimpleToast"
  7. android:text="默认"></Button>
  8. <Button android:layout_height="wrap_content"
  9. android:layout_width="fill_parent"android:text="自定义显示位置"
  10. android:id="@+id/btnSimpleToastWithCustomPosition"></Button>
  11. <Button android:layout_height="wrap_content"
  12. android:layout_width="fill_parent"android:id="@+id/btnSimpleToastWithImage"
  13. android:text="带图片"></Button>
  14. <Button android:layout_height="wrap_content"
  15. android:layout_width="fill_parent"android:text="完全自定义"
  16. android:id="@+id/btnCustomToast"></Button>
  17. <Button android:layout_height="wrap_content"
  18. android:layout_width="fill_parent"android:text="其他线程"
  19. android:id="@+id/btnRunToastFromOtherThread"></Button>
  20. </LinearLayout>


3.custom.xml

[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_height="wrap_content"android:layout_width="wrap_content"
  5. android:background="#ffffffff"android:orientation="vertical"
  6. android:id="@+id/llToast">
  7. <TextView
  8. android:layout_height="wrap_content"
  9. android:layout_margin="1dip"
  10. android:textColor="#ffffffff"
  11. android:layout_width="fill_parent"
  12. android:gravity="center"
  13. android:background="#bb000000"
  14. android:id="@+id/tvTitleToast"/>
  15. <LinearLayout
  16. android:layout_height="wrap_content"
  17. android:orientation="vertical"
  18. android:id="@+id/llToastContent"
  19. android:layout_marginLeft="1dip"
  20. android:layout_marginRight="1dip"
  21. android:layout_marginBottom="1dip"
  22. android:layout_width="wrap_content"
  23. android:padding="15dip"
  24. android:background="#44000000">
  25. <ImageView
  26. android:layout_height="wrap_content"
  27. android:layout_gravity="center"
  28. android:layout_width="wrap_content"
  29. android:id="@+id/tvImageToast"/>
  30. <TextView
  31. android:layout_height="wrap_content"
  32. android:paddingRight="10dip"
  33. android:paddingLeft="10dip"
  34. android:layout_width="wrap_content"
  35. android:gravity="center"
  36. android:textColor="#ff000000"
  37. android:id="@+id/tvTextToast"/>
  38. </LinearLayout>
  39. </LinearLayout>
0 0
原创粉丝点击