android Toast大全(五种情形)
### Android Toast 大全(五种情形) #### 一、概览 在Android开发中,`Toast`是一种轻量级的提示方式,主要用于快速显示简短的信息,如操作结果、临时提示等。它不会阻塞UI线程,也不需要用户进行任何交互即可自动消失。本文将详细介绍五种创建`Toast`的方法,帮助开发者根据实际需求定制个性化的提示。 #### 二、默认效果 **定义:** 默认的`Toast`是最简单的形式,仅包含文本信息,并且会居中显示在屏幕底部。 **代码示例:** ```java Toast.makeText(getApplicationContext(), "默认Toast样式", Toast.LENGTH_SHORT).show(); ``` **解析:** - `getApplicationContext()`:获取应用程序上下文。 - `"默认Toast样式"`:要显示的文本内容。 - `Toast.LENGTH_SHORT`:设置提示持续时间,此值表示短暂显示(默认为2秒左右)。 #### 三、自定义显示位置效果 **定义:** 通过`setGravity`方法可以改变`Toast`出现的位置,使其更加灵活。 **代码示例:** ```java Toast toast = Toast.makeText(getApplicationContext(), "自定义位置Toast", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); ``` **解析:** - `Gravity.CENTER`:设置`Toast`居中显示。 - 第二个参数(0):水平偏移量,相对于重力中心的横向偏移像素值。 - 第三个参数(0):垂直偏移量,相对于重力中心的纵向偏移像素值。 #### 四、带图片效果 **定义:** 有时需要在`Toast`中加入图标或图片,以便更直观地传达信息。 **代码示例:** ```java Toast 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(); ``` **解析:** - 获取`Toast`的`View`对象,并添加`ImageView`。 - `setImageResource(R.drawable.icon)`:设置图片资源ID。 #### 五、完全自定义效果 **定义:** 开发者可以通过自定义布局文件来实现更加复杂的`Toast`样式,包括背景色、字体大小、图标等。 **代码示例:** ```java 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 toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); ``` **解析:** - 使用`LayoutInflater`加载自定义布局。 - 设置各个控件的属性,如文字内容、图片等。 - 通过`setView`方法将自定义布局设置为`Toast`的内容。 #### 六、其他线程 **定义:** 在非UI线程中显示`Toast`需要通过`Handler`或其他方式传递到主线程执行。 **代码示例:** ```java new Thread(new Runnable() { public void run() { showToast(); } }).start(); ``` **解析:** - 创建新线程并运行`showToast()`方法。 - `showToast()`方法需确保在主线程中执行。 #### 结论 以上五种`Toast`创建方式涵盖了基本到高级的应用场景,能够满足大多数开发需求。开发者可以根据具体需求选择合适的方式,从而提升用户体验。同时,需要注意的是,在设计`Toast`时应保持简洁明了,避免过于复杂而影响用户体验。
- 粉丝: 2
- 资源: 37
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助