带图片的Toast,其实就是自定义布局的Toast,只要Toast.setView即可。

Toast也能设置显示的位置,中间或者底部之类的

toast.setGravity(gravity, xOffset, yOffset)

Toast过长显示不居中的问题,就可以自定义布局

Toast

toast.gif使用findViewById(R.id.btnShortToast).setOnClickListener {

ToastUtils.shortToast(R.string.normal_toast)

}

findViewById(R.id.btnLongToast).setOnClickListener {

ToastUtils.longToast(getString(R.string.long_toast))

}

findViewById(R.id.btnCenterToast).setOnClickListener {

ToastUtils.setToastGravity(Gravity.CENTER, 0, 0)

ToastUtils.shortToast(R.string.center_toast)

}

findViewById(R.id.btnBottomToast).setOnClickListener {

ToastUtils.setToastGravity(Gravity.BOTTOM, 0, 100)

ToastUtils.shortToast(R.string.bottom_toast)

}

findViewById(R.id.btnImageToast).setOnClickListener {

ToastUtils.shortImageToast(R.string.image_toast)

}直接看代码解释object ToastUtils {    private var toast: Toast? = null

private var imageToast: Toast? = null

fun cancelToast() {

toast?.let {

it.cancel()

}

imageToast?.let {

it.cancel()

}

}    /**

* 初始化Toast

*/

private fun initToast(): Toast? {        if (null == toast) {            //Toast如果没有自定义view,就要makeText

toast = Toast.makeText(BaseApplication.getInstance(), "", Toast.LENGTH_SHORT)

}        return toast

}    /**

* 默认Toast

*/

fun shortToast(message: Any) {

normalToast(message, Toast.LENGTH_SHORT)

}    fun longToast(message: Any) {

normalToast(message, Toast.LENGTH_LONG)

}    /**

* @param message 内容,string或资源id

* @param duration Toast的显示时长

*/

fun normalToast(message: Any, duration: Int) {

initToast()

toast?.let {            if (message is String) {

it.setText(message)

} else if (message is Int) {

it.setText(message)

}

it.duration = duration

it.show()

}

}    /**

* 设置Toast位置

*/

fun setToastGravity(gravity: Int, xOffset: Int, yOffset: Int) {

toast?.let {

it.setGravity(gravity, xOffset, yOffset)

}

}    /**

* 图片Toast初始化

*/

private fun initImageToast(): Toast? {        if (null == imageToast) {

imageToast = Toast(BaseApplication.getInstance())

imageToast?.setGravity(Gravity.CENTER, 0, 0)

}        return imageToast

}    /**

* 默认图片Toast

*/

fun shortImageToast(message: Any) {

imageToast(message, null, Toast.LENGTH_SHORT)

}    /**

* 自定义图片Toast

*/

fun shortImageToast(message: Any, img: Int?) {

imageToast(message, img, Toast.LENGTH_SHORT)

}    /**

* 长时间图片Toast

*/

fun longImageToast(message: Any) {

imageToast(message, null, Toast.LENGTH_LONG)

}    /**

* 长时间自定义图片Toast

*/

fun longImageToast(message: Any, img: Int?) {

imageToast(message, img, Toast.LENGTH_LONG)

}    /**

* 设置图片Toast位置

*/

fun setImageToastGravity(gravity: Int, xOffset: Int, yOffset: Int) {

imageToast?.let {

it.setGravity(gravity, xOffset, yOffset)

}

}    /**

* @param message 内容,string或资源id

* @param img 图片资源id

* @param duration Toast的显示时长

*/

fun imageToast(message: Any, img: Int?, duration: Int) {

initImageToast()

imageToast?.let {            //可以是其他自定义布局

val rootView = LayoutInflater.from(BaseApplication.getInstance()).inflate(R.layout.toast_view, null)            //设置消息

val txtContent = rootView.findViewById(R.id.txtContent)            if (message is String) {

txtContent.text = message

} else if (message is Int) {

txtContent.setText(message)

}            //设置图片

val imgContent = rootView.findViewById(R.id.imgContent)

imgContent.setImageResource(R.drawable.ic_success_white)

img?.let {

imgContent.setImageResource(it)

}

it.view = rootView

it.duration = duration

it.show()

}

}

}

作者:Good包籽

链接:https://www.jianshu.com/p/a21b4f409250

打开App,阅读手记

android toast 带图片,Android 带图片的Toast相关推荐

  1. 【Android开发】范例1-实现带描边的圆角图片

    利用学过的BitmapShader渲染类,我们来实现一个带描边的圆角图片. 具体实现: 用来显示自定义的绘图类的布局文件 res/layout/main.xml: <?xml version=& ...

  2. Android:ViewPager详解(异步网络加载图片,带图片缓存,并带导航小圆点)

    android 应用中,如欢迎指引页面, 和图片轮播功能, 或者更多的内容在一页显示不了,要分成多个页面,这时候viewpager是很好用的. 首先看下效果: 下面是一个例子,带异步网络加载图片,并带 ...

  3. Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78357251 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...

  4. android bitmap转图片_带你用Android自定义View实现网易云音乐宇宙尘埃特效

    作者:Mlx, 链接:https://juejin.im/post/6871049441546567688 前言 前段时间,女朋友用网易云音乐的时候看到一个宇宙尘埃特效,说很好看,想要让我给她开VIP ...

  5. android 背景描边,Android实现带描边的圆角图片

    利用学过的BitmapShader渲染类,我们来实现一个带描边的圆角图片. 具体实现: 用来显示自定义的绘图类的布局文件 res/layout/main.xml: xmlns:tools=" ...

  6. android bitmap 描边,Android如何实现带描边的圆角图片

    Android如何实现带描边的圆角图片 发布时间:2021-04-16 13:53:03 来源:亿速云 阅读:99 作者:小新 这篇文章给大家分享的是有关Android如何实现带描边的圆角图片的内容. ...

  7. android圆球触摸怎么实现,Android利用ViewPager实现带小圆球的图片滑动

    Android利用ViewPager实现带小圆球的图片滑动 发布时间:2020-10-02 05:55:29 来源:脚本之家 阅读:69 作者:antimage08 在上文实现的带小圆球的图片滑动的通 ...

  8. Android 心形图片心形ImageView、带边框的的心形图片和圆形图片

    源码地址:心形图片.心形ImageView.圆形图片.圆形ImageView 实际效果如下: 一.思路 1.图片尺寸:加载的图片尺寸不会完全统一,可以是正方形,长方形等,这里不需要考虑正方形,因为一般 ...

  9. android仿微信头像点击放大查看,仿微信查看图片(带大小图切换查看)

    之前一直想仿微信朋友圈那样做个图片查看,但是看了网上很多demo都觉得比较简单,少了从小图切换到大图的加载过程,都只是在所有预览里加载大图,点击进去也是加载大图,于是在网上下载了别人的demo自己修改 ...

  10. Android 摄像头拍照显示 相册显示 图片裁剪绘制显示

    声明: 学习这个之前, 建议先学习下内容提供器. 使用的是Android系统自带的裁剪功能. 本人真机(华为荣耀9 Android8.0)测试, 先上效果图(拍照和从相册选, 一样的效果): .1. ...

最新文章

  1. 逸鹏说道:漫漫人生路
  2. 第二十二章:动画(十四)
  3. struts2综合例子--------拦截器(登陆检查,日志记录),校验validate,
  4. 学JS的心路历程-Promise(一)
  5. 时序分析:DTW算法(基于模板)
  6. php curl和file get,PHP cURL与file_get_contents
  7. python程序打包多个py文件_不使用setup.py,打包 Python 项目
  8. html5进度条插件 传递参数,Html5进度条插件(自写)
  9. c++ map底层_深入浅出Redisredis底层数据结构(上)
  10. 力扣914.卡牌分组
  11. java应用中如何连接dbproxy_GitHub - alchemystar/hero: 用c语言写的dbproxy
  12. m序列生成方法及其fpga实现
  13. 机器视觉中偏振片的应用
  14. amd显卡风扇调节_AMD Crimson驱动程序导致显卡风扇速度过低,官方: 请尽快修复...
  15. cfree mysql_如何配置CFree才能开发MySql数据库应用
  16. Python之路,Day1 - Python基础1
  17. 榜样访谈——曾钰倬:从讲座中收获经验
  18. 人民币小写转大写算法
  19. 中国金融进入移动支付时代
  20. OneData方法论-概述

热门文章

  1. python catia二次开发_CATIA VBA二次开发教程|使用零件的Body生成Product
  2. 使用npm安装yarn命令
  3. 安装studio3t
  4. 数字孪生,开启3D智慧园区管理新篇章
  5. OKR组织敏捷目标和绩效管理第一课 OKR的价值、战略与生成
  6. 新手初步--Springmvc
  7. HTML5海报生成器源码,原生js小项目 - canvas海报生成器
  8. ESP32-CAM 安信可
  9. 字体如何设计,这几点很重要
  10. redis 雪崩、击穿、穿透