最近的项目中需要用到自定义Toast,于是便学习了一下。

效果图

Toast用于向用户显示一些帮助或提示,上面展示了Toast的4种使用效果,有需求的话也可以完全自定义,是一项很实用也很强大的功能。

这是使用Toast需要注意的代码:

LENGTH_LONG---长时间显示视图或文本提示

LENGTH_SHORT---短时间显示视图或文本提示

setGravity(int gravity,int xOffset,int yOffset)---设置提示应该在屏幕上的显示的位置

setDuration(int duartion)---设置提示显示的持续时间

接下来我们分别讲解各种效果的代码:

1.默认Toast样式

Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show();

最基础的用法,参数为 Context 上下文对象,CharSequence 提示语,Duration 显示时间

别忘了最后的.show() 用来显示Toast

2.自定义位置Toast

toast = Toast.makeText(getApplicationContext(),"自定义位置Toast", Toast.LENGTH_LONG);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();

加了这一行代码

setGravity(int gravity,int xOffset,int yOffset)---设置提示应该在屏幕上的显示的位置

CENTER为居中,x,y即从中心点计算

3.展示图片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.ic_launcher_background);toastView.addView(imageCodeProject, 0);toast.show();

添加的代码:

实例化了一个LinearLayout ,以及ImageView,并且给ImageView设置资源文件

再在LinearLayout中添加ImageView,展示Toast。

4.完全自定义Toast

  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.ic_launcher_background);TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);title.setText("自定义Toast");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();

获得 LayoutInflater 实例,载入布局文件

声明布局文件的几个View

实例化toast,设置位置 右对齐,置顶。

完整代码:

MainActivity.java

package com.example.toastviewdemo;import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.btnSimpleToast).setOnClickListener(this);findViewById(R.id.btnSimpleToastWithCustomPosition).setOnClickListener(this);findViewById(R.id.btnSimpleToastWithImage).setOnClickListener(this);findViewById(R.id.btnCustomToast).setOnClickListener(this);}@Overridepublic void onClick(View v) {Toast toast;switch (v.getId()) {case R.id.btnSimpleToast:Toast.makeText(getApplicationContext(), "Toast默认样式",Toast.LENGTH_SHORT).show();break;case R.id.btnSimpleToastWithCustomPosition:toast = Toast.makeText(getApplicationContext(),"Toast自定义展示位置", Toast.LENGTH_LONG);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();break;case R.id.btnSimpleToastWithImage: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.ic_launcher_background);toastView.addView(imageCodeProject, 0);toast.show();break;case R.id.btnCustomToast: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.ic_launcher_background);TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);title.setText("自定义Toast");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();break;}}
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent" android:padding="5dip" android:gravity="center"><Button android:layout_height="wrap_content"android:layout_width="fill_parent" android:id="@+id/btnSimpleToast"android:text="默认Toast"></Button><Button android:layout_height="wrap_content"android:layout_width="fill_parent" android:text="自定义位置Toast"android:id="@+id/btnSimpleToastWithCustomPosition"></Button><Button android:layout_height="wrap_content"android:layout_width="fill_parent" android:id="@+id/btnSimpleToastWithImage"android:text="展示图片Toast"></Button><Button android:layout_height="wrap_content"android:layout_width="fill_parent" android:text="完全自定义Toast"android:id="@+id/btnCustomToast"></Button></LinearLayout>

custom.xml

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

Android Toast 吐司 自定义使用 展示图片 Toast自定义教程(一)相关推荐

  1. Enjoy! 多达400多万的动态搞笑,爱情,友情。。。。表情下载 表情表情自定义表情表情图片下载 自定义QQ表情使用方法完全图解

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 多达40 ...

  2. android 中自定义键盘,【图片】自定义属于自己的专属键盘的思路!!!(需要有android编程基础)【exagear吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 最近玩一些全键盘游戏,比如elona,nethack等等这类游戏,模拟器的键盘就很不够用,那个 游戏键盘 软件用起来体验也很不好,今天自己就琢磨着为这些游 ...

  3. android 修改系统键盘布局,【图片】自定义属于自己的专属键盘的思路!!!(需要有android编程基础)【exagear吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 最近玩一些全键盘游戏,比如elona,nethack等等这类游戏,模拟器的键盘就很不够用,那个 游戏键盘 软件用起来体验也很不好,今天自己就琢磨着为这些游 ...

  4. android厨房的使用方法,【图片】【教程】用安卓厨房制作自己的Rom【颓废rom吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 4.然后是美化 不喜欢或者不懂美化的同学可以绕过这一步了.这一步骤是毕竟比较难的,整个制作过程中涉及到手动反编译的就在这里. 美化主要是弄以下方面,修改s ...

  5. android手机 环境变量 文件,【图片】【教程】配置安卓Java环境变量【手机端反编译吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我:Baksmaling- 我:加载资源表-- 我:加载. 我:解码AndroidManifest.xml资源-- 从文件加载资源表:? / apktoo ...

  6. Android Toast 吐司 自定义使用 实现动态打勾对号效果 Toast自定义教程(三)

    这篇博客主要是写了功能的实现,在前面已经写了原理. Android 自定义View 通过Paint和Canvas实现动态打勾对号效果 Android Toast 吐司 自定义使用 展示图片 Toast ...

  7. android调用系统相机并获取图片

    如果不是特别的要求,通过拍照的方式取得图片的话,我们一般调用系统的拍照来完成这项工作,而没必要再自己去实现一个拍照功能.调用系统相机很简单,只需要一个intent就可以跳转到相几界面,然后再通过onA ...

  8. android拍照实现过程图,Android实现拍照截取和相册图片截取

    关于拍照截取和相册截取,看了网上很多资料,自己整理了一份比较详细的,供有需要的人参考 1  拍照 原理就是通过intent调用系统的相机,拍完照在回调进行操作,成功获取到拍完照的图片根据uri调用系统 ...

  9. Android例子—自定义Toast(吐司)样式

    1.直接调用Toast类的makeText()方法创建 这是我们用的最多的一种形式了!比如点击一个按钮,然后弹出Toast,用法: Toast.makeText(MainActivity.this, ...

  10. Android基础入门教程——2.5.1 Toast(吐司)的基本使用

    Android基础入门教程--2.5.1 Toast(吐司)的基本使用 标签(空格分隔): Android基础入门教程 本节引言: 好的,终于学习完Adapter类相关的一些控件,当然除了讲解的那几个 ...

最新文章

  1. 技巧 | OpenCV中如何绘制与填充多边形
  2. linux命令简单汇总,直通车
  3. python简单代码演示效果-演示python如何创建和使用一个简单的元类的代码
  4. 【项目实战课】基于Pytorch的SRGAN图像超分辨实战
  5. svn 1.6 linux 下载,LINUX下Subversion1.6.17 部署
  6. 宠物次元经济专题分析2020
  7. kylin安装过程问题排查
  8. 口罩人脸检测与分类开源代码汇总
  9. Shell脚本常见执行报错案例
  10. 圆排列问题详解(原理+代码)
  11. 360安卓_360手机助手安卓下载
  12. 【秒懂音视频开发】13_AAC编码
  13. EA enterprise architect 画类图
  14. 三层交换(VLAN间通信)
  15. 【社招】【邮储总行】软件研发中心2022年社招开发专场
  16. Web安全 学习笔记
  17. Dialogs 介绍
  18. 经典蓝牙与低功耗蓝牙的区别
  19. Python实战——VAE的理论详解及Pytorch实现
  20. 1u服务器最多多少内存条,高密度节省空间 四款1U机架式服务器推荐

热门文章

  1. VastBase技术实践
  2. 微信mysql抽奖系统源码_微信互动游戏营销活动抽奖系统 v1.0
  3. Workbench中直接调用ICEM CFD进行网格划分
  4. Excel如何计算年龄
  5. Uhuntu搜狗拼音输入法安装详细过程
  6. 安卓pdf阅读器_想找可以安装APP的电子书阅读器?BOOX这几个型号可以选!
  7. 如何将Flask项目部署在Ubuntu系统的阿里云主机中(详细完整版:下)
  8. 《分布式机器学习:算法、理论与实践》
  9. Unity 接入旷视Face进行人脸融合
  10. 微信小程序开发需要什么技术