Toast的自定义用法

转载 2015年11月18日 15:17:38

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

  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

  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

  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>

相关文章推荐

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

Toast是一种提供给用户简洁信息的视图。Toast类帮助你创建和显示该信息。 该视图已浮于应用程序之上的形式呈现给用户。因为它并不获得焦点,即使用户正在输入什么也不会受到影响。它的目标是尽可能...

android自定义彩色的Toast

  • 2016-04-20 13:32
  • 1.41MB
  • 下载

一只大二狗的Android历程--自定义Toast样式

2017年3月14日 10:34 PM 今天看了点自定义Toast的文章,看了篇易懂的,自己改了下,在这里说一下 自定义Toast需要创建工具类和自定义样式(在这里感谢博主DayDayPlayPh...

自定义toast模拟器演示

  • 2016-08-04 19:51
  • 928KB
  • 下载

Toast拓展--自定义显示时间和动画

我们在Android应用开发中经常会需要在界面上弹出一个对界面操作无影响的小提示框来提示用户一些信息,这时候一般都会使用Android原生的Toast类,一开始觉得,挺好用的,但是用久了就发现,Toa...

自定义彩色Toast

  • 2014-11-29 15:19
  • 1.67MB
  • 下载

自定义Toast

  • 2014-10-09 10:10
  • 1.30MB
  • 下载

android 自定义Toast,可设定显示时间

http://www.tuicool.com/articles/rIV3ie 开发android的同学可能会抱怨Toast设定显示的时长无效,只能是Toast.LENGTH_LONG 或者Toa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)