Android中的Toast

这篇博客主要介绍了Android中Toast的四种使用方式:默认Toast、自定义Toast、带图片的Toast以及完全自定义View的Toast,提供了相关源码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前跟大家说到了dialog的一些使用,这次讲讲Toast的使用

总体来讲有4种使用方式:

1.默认的Toast   2.自定义的Toast  3.带有图片的Toast   4.完全自定义view的Toast




源码

 
 
  1. public class MainActivity extends Activity implements View.OnClickListener{
  2. private Button btn1;
  3. private Button btn2;
  4. private Button btn3;
  5. private Button btn4;
  6. @Override
  7. protected void onCreate(@Nullable Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. btn1 = (Button) findViewById(R.id.btn1);
  11. btn2 = (Button) findViewById(R.id.btn2);
  12. btn3 = (Button) findViewById(R.id.btn3);
  13. btn4 = (Button) findViewById(R.id.btn4);
  14. btn1.setOnClickListener(this);
  15. btn2.setOnClickListener(this);
  16. btn3.setOnClickListener(this);
  17. btn4.setOnClickListener(this);
  18. }
  19. @Override
  20. public void onClick(View view) {
  21. switch (view.getId()){
  22. case R.id.btn1:
  23. Toast toast1 = Toast.makeText(this,"默认的Toast",Toast.LENGTH_SHORT);
  24. toast1.show();
  25. break;
  26. case R.id.btn2:
  27. Toast toast2 = Toast.makeText(this, "自定义位置的Toast", Toast.LENGTH_SHORT);
  28. toast2.setGravity(Gravity.CENTER,0,0); //通过此方法设置Toast的位置
  29. toast2.show();
  30. break;
  31. case R.id.btn3:
  32. Toast toast3 = Toast.makeText(this,"带有图片的Toast", Toast.LENGTH_SHORT);
  33. ImageView iv = new ImageView(this);
  34. iv.setImageResource(R.mipmap.ic_launcher);
  35. LinearLayout ll = (LinearLayout) toast3.getView(); //此处可能习惯使用setXXX,但是实际操作发现是通过getView方法
  36. ll.addView(iv); //获得Toast中的view
  37. toast3.show();
  38. break;
  39. case R.id.btn4:
  40. Toast toast4 = new Toast(this);
  41. toast4.setGravity(Gravity.CENTER,0,0);
  42. toast4.setView(getLayoutInflater().inflate(R.layout.toast,null)); //通过setView方法完全设置自定义的View
  43. toast4.show();
  44. break;
  45. }
  46. }
  47. }

自定义的view:

 
 
  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="match_parent"
  4. android:layout_height="match_parent">
  5. <TextView
  6. android:text="自定义的Toast"
  7. android:layout_width="match_parent"
  8. android:layout_height="wrap_content" />
  9. <LinearLayout
  10. android:gravity="center_vertical"
  11. android:orientation="horizontal"
  12. android:layout_width="wrap_content"
  13. android:layout_height="wrap_content">
  14. <ImageView
  15. android:src="@mipmap/ic_launcher"
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content" />
  18. <TextView
  19. android:text="自定义view"
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content" />
  22. </LinearLayout>
  23. </LinearLayout>
测试的时候想了下,Toast虽然是继承Object的,与view没什么关系,可是细想toast也很像一个view来表现数据,也可换种思维理解,toast看作一个view的话,默认自身就带有布局,通过getView 方法获取对象,可以设置相应的参数,  提供set View方法让我们完全自定义自己的view

以上也只是个人看法,仅供参考 。


Toast是一种轻量级的提示框,用于在屏幕上显示简短的消息。以下是AndroidToast的用法: 1. 在布局文件中定义Toast的布局样式,例如: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#FFFFFF" android:padding="8dp"> <ImageView android:id="@+id/toast_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher"/> <TextView android:id="@+id/toast_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello world!"/> </LinearLayout> ``` 2. 在Java代码中创建Toast对象,并设置其显示的位置和时长等属性,例如: ```java LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.toast_layout, null); ImageView icon = layout.findViewById(R.id.toast_icon); TextView text = layout.findViewById(R.id.toast_text); icon.setImageResource(R.drawable.ic_launcher); text.setText("Hello world!"); Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER, 0, 0); toast.setDuration(Toast.LENGTH_SHORT); toast.setView(layout); toast.show(); ``` 以上代码中,通过LayoutInflater从XML布局文件中加载Toast的布局样式,然后设置图标和文本内容,并通过setGravity()方法设置Toast的显示位置,最后调用show()方法显示Toast。 注意:Toast必须在UI线程中显示。如果在非UI线程中显示Toast,需要使用Handler或runOnUiThread()方法来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值