Android 带图片的Toast
Android 带图片的Toast
Github代码
带图片的Toast,其实就是自己设置布局的Toast,只需Toast.setView就可。
Toast也可设置显示的位置,中间或者者底部之类的
toast.setGravity(gravity, xOffset, yOffset)Toast过长显示不居中的问题,即可以自己设置布局
Toast
toast.gif
- 使用
findViewById<Button>(R.id.btnShortToast).setOnClickListener { ToastUtils.shortToast(R.string.normal_toast)}findViewById<Button>(R.id.btnLongToast).setOnClickListener { ToastUtils.longToast(getString(R.string.long_toast))}findViewById<Button>(R.id.btnCenterToast).setOnClickListener { ToastUtils.setToastGravity(Gravity.CENTER, 0, 0) ToastUtils.shortToast(R.string.center_toast)}findViewById<Button>(R.id.btnBottomToast).setOnClickListener { ToastUtils.setToastGravity(Gravity.BOTTOM, 0, 100) ToastUtils.shortToast(R.string.bottom_toast)}findViewById<Button>(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<TextView>(R.id.txtContent) if (message is String) { txtContent.text = message } else if (message is Int) { txtContent.setText(message) } //设置图片 val imgContent = rootView.findViewById<ImageView>(R.id.imgContent) imgContent.setImageResource(R.drawable.ic_success_white) img?.let { imgContent.setImageResource(it) } it.view = rootView it.duration = duration it.show() } }}说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android 带图片的Toast
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android 带图片的Toast