android开发基础之-----------自定义toast

Android 开发中自定义Toast 自定义Toast可设置不同时长以及显示自定义的布局 阅读详情
如何自定义一个toast,
1.首先要有一个布局文件,在layout中创建布局文件设置自定义toast控件的显示样式。即toast的布局。
2.创建一个方法,显示我们自定义的toast控件,使用了窗口管理者,将我们的控件转成一个view对象,
添加到窗口管理者中,此外还可以根据Gravity来设置toast的位置,如果不设置toast的位置,后果不堪设想哦!!!
3.将view对象添加到windowManager中

如果需要,还应该设置toast控件的隐藏方法,即不需要的时候就让toast消失。具体代码如下。

1.布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:id="@+id/ll_toast_address_show"
    android:background="@drawable/btn_green_normal"
    android:padding="6sp"
    android:orientation="horizontal" >
    
	<ImageView 
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:src="@drawable/ic_launcher"
	    />
	<TextView 
	    android:id="@+id/tv_toast_address"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:textSize="18sp"
	    android:textColor="#000000"
	    android:text="北京移动"
	    />
</LinearLayout>

布局文件的样式,

2.定义自定义控件的显示方法

//显示自定义toast
	public void showToast(String queryAddress){
		
		
		//创建一个窗口管理者
		windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
		//把自定义toast布局文件转成view对象
		view = View.inflate(getApplicationContext(), R.layout.toast_layout, null);
		//获取自定义toast控件中的文本显示控件
		TextView tv_toast_address = (TextView) view.findViewById(R.id.tv_toast_address);
		
		//设置toast地址   把传递进来的地址显示在自定义控件的文件显示控件中。
		tv_toast_address.setText(queryAddress);
		
		//设置参数。
		params = new WindowManager.LayoutParams();
        params.height = WindowManager.LayoutParams.WRAP_CONTENT;
        params.width = WindowManager.LayoutParams.WRAP_CONTENT;
        params.flags = 
        		WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                //| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE//自定义的需要点击
                | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
        params.format = PixelFormat.TRANSLUCENT;
        //params.type = WindowManager.LayoutParams.TYPE_TOAST;
        params.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;//设置为高优先级的类型
        
        //设置吐司位置  左右  效果冲突  以默认效果为主。
        params.gravity=Gravity.LEFT | Gravity.TOP;
        //设置自定义位置。
        params.x = sp.getInt("x", 100);//根据gravity属性来设置距离边框的位置
        params.y = sp.getInt("y", 100);
        
		//在窗口中显示toast控件
		windowManager.addView(view, params);
	}

3.将view对象添加到windowManager中
//在窗口中显示toast控件
windowManager.addView(view, params);




4.此外隐藏自定义的toast方法代码如下:

 /**
	 * 隐藏吐司的操作
	 */
	public void handleHide() {
        // note: checking parent() just to make sure the view has
        // been added...  i have seen cases where we get here when
        // the view isn't yet added, so let's try not to crash.
        	if (windowManager != null && view!= null) {
				windowManager.removeView(view);//移出控件
				windowManager= null;
				view=null;
			}
     }



Android Toast 使用指南:从基础原理到高级实践与避坑 在Android应用开发中,用户交互反馈是构建良好用户体验的关键环节。系统级的消息提示机制,作为一种轻量、非模态的UI组件,其核心原理是通过WindowManager向系统服务发起显示请求,由系统统一管理队列,实现短暂展示后自动消失。这项技术的价值在于能在不打断用户操作流程的前提下,提供即时、友好的状态反馈,如操作成功、网络异常或保存完成等提示。其典型应用场景覆盖了表单提交、权限引导、后台任务状态通知等高频交互环节。本文将聚焦于Android中的Toast组件,深入解析其线程安全要求、Context选择策略 阅读详情

相关推荐

安卓开发-Toast使用详解

安卓开发- Toast 使用详解、修改toast位置、自定义toast

wm 6091

Android Toast用法详解(各种自定义Toast)

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!资料⬅专栏获取android:text=“自定义位置”

2401_85763595的博客 1317

Android 11 下 Toast 变化,不能自定义 Toast 了?

自定义 Toast「不能」在 app 处于后台时显示,取而代之会显示的文本 toast禁止后台自定义 Toast普通的text toast不受影响普通的 text toast 不受影响默认的 toast 是text toast,如果想使用自定义的 toast ,需要调用 setView() 方法在 targetSdkVersion 为 R 或更高时,调用 setGravity 和 setMargin 方法将不进行任何操作❝官方文档中所述的 Android R 仅影响。

2401_89174745的博客 1113

Android开发之自定义Toast(带详细注释)

因为工作需求,所以自己研究了自定义Toast,这里做出总结: 在此之前有一点需要提前说明:Toast与其他组件一样,都属于UI界面中的内容,因此在子线程中无法使用Toast弹出提示内容,如果强行在子线程中增加会导致错误。本例子使用异步任务来说明,原理跟子线程一样。 主界面: 自定义Toast弹出的样式: MainActivity: 1 public class MainA...

weixin_34040079的博客 193

android 自定义Toast 吐司

3.自定义带图片的Toast显示实现代码如下:4.完全自定义的Toast显示实现代码:5.长时间显示的Toast显示6.自定义Toast的布局如下:

2401_84149339的博客 1569

《Android 基础(十六)》Toast

Toast的简单介绍和简单使用

AndroidKt 1766

android中自定义 toast,android 自定义Toast

Toast是android的一个简易消息提示框。它不会获得焦点,也无法被点击。向用户提示信息,却不停留着不动。其实,自定义Toast非常简单:先看效果:首先:新建一个mtoast.xml布局文件:android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@null"android...

weixin_33585822的博客 486

掌握Android中五种定制Toast效果的技巧

本文还有配套的精品资源,点击获取 简介:在Android应用开发中,Toast是用于提供非打扰式反馈的小型通知。本篇文章将介绍如何通过代码实现五种不同风格的Toast,包括自定义布局、持续时间、显示位置、动画效果、颜色和字体样式以及点击事件,以增强用户交互体验。这些技巧包括使用系统默认Toast、创建自定义布局、调整Toast持续时间、改变Toast显示位置、应用动画效果、...

weixin_33375360的博客 4638

安卓开发-Toast进阶指南:从基础到自定义

本文全面解析安卓开发中Toast的使用技巧,从基础调用到自定义布局,再到高版本适配方案。详细介绍了Toast的定位控制、样式自定义、性能优化等进阶技巧,并提供了替代方案的选择建议,帮助开发者提升用户体验和应用兼容性。

weixin_30839881的博客 430

Android-Android实现Toast自定义样式

Android:实现Toast自定义样式(包括:自定义位置、带图片等)、自定义显示时长(包括可用系统时长、可自定义)

android开发之自定义Toast

一个简单的自定义Toast资源,您可以根据自己的需要更改我的代码即可实现您想要的效果(主要是更改xml文件的布局),这是androidstudio的项目,但是不妨碍在eclipse中使用,可以直接在eclipse中新建android项目,然后将代码拷进去即可使用。相关博客地址:http://www.cnblogs.com/1925yiyi/p/7452282.html

Toast使用总结

Android Toast基础与原理 Android自定义Toast视图和动画

钝悟需要时间的打磨,顿悟需要时间的积累 346

设计的多实例引用(Multiple Instances of a Design Reference)

一、什么是“设计的多实例引用” 在层次化的设计中,我们经常会将一个module例化多份,这些例化的instance就是设计的module的多实例引用。 二、为什么要解决多实例引用 三、怎么解决多实例引用 ...

kevindas的博客 3719

自定义Android Toast(2)

/**Show the view or text notification for a long period of time. This timecould be user-definable.*/public static final int LENGTH_LONG = 1;private Toast() {}/**Make a standard toast that just contains a text view.@param context The context to use. Usua

2301_82242251的博客 320

FPGA远程升级避坑指南:用AXI Quad SPI IP读写N25Q128 Flash的完整流程

本文详细介绍了FPGA远程升级过程中使用AXI Quad SPI IP读写N25Q128 Flash的完整流程,包括IP核配置、Flash操作指令集、双镜像备份设计及生产级远程升级协议。通过最佳实践和避坑策略,帮助开发者实现可靠的镜像更新方案,提升系统可靠性和可维护性。

weixin_30542079的博客 673

SQLite性能优化:从WAL模式到内存映射的深度解析

本文深入解析SQLite性能优化策略,重点介绍WAL模式和内存映射技术的应用。通过合理配置WAL日志、同步策略和事务批处理,SQLite的IO吞吐量可提升3-5倍。结合内存映射和缓存优化,性能可进一步提升至默认配置的50倍,适用于高并发读写场景。

weixin_29231027的博客 455

Android开发指南(35) —— Toast Notifications

  前言   本章内容为Android开发者指南的 Framework Topics/User Interface/Notifications/Toast Notifications章节,译为"媒体播放",版本为Android 4.0 r1,翻译来自:"呆呆大虾",欢迎访问他的微博:"http://weibo.com/popapa",再次感谢"呆呆大虾" !期待你一起参与翻译Android的相关资...

weixin_34205826的博客 178

基于分位数回归的静态CoVaR计算 案例与代码

原文链接:https://bbs.pinggu.org/thread-7925441-1-1.html 一、静态CoVaR模型介绍 二、资料简介 实现对相关期刊论文进行论文重现,解决实证分析中的技术操作问题。里面包含了每一步详细的步骤,可以方便的利用这个手册解决大部分利用分位数回归计算静态CoVaR的论文的模型实现问题。即从数据下载到模型实现一整条操作步骤。 关键词:【分位数回归】【Co...

ChenQihome9的博客 7503

Android自定义Toast:从基础到进阶的完整实现方案

Android自定义Toast实现方案 本文系统介绍了Android Toast的自定义实现方法。首先解析了Toast的核心机制,包括其作为系统级窗口的实现原理和位置计算模型。在基础自定义实现部分,详细讲解了位置控制方案(预设位置和动态位置计算)以及样式修改(背景调整、边距设置和显示时长扩展)。高级方案部分则展示了完全自定义布局的实现,包括XML布局定义和动态加载,以及通过动画增强效果的技术方案。文中提供了大量实用代码示例,涵盖从基础到进阶的各种场景,为开发者实现个性化Toast提示提供完整技术参考。

1157

【CUDA编程部署教程】第一章:GPU架构与CUDA编程核心 1

我们将剖析现代GPU的计算心脏——流式多处理器(SM),理解其独特的Warp执行模型,探索Tensor Core带来的革命性矩阵运算加速,并深入探讨决定性能命脉的内存体系。当必须访问全局内存时,则必须遵循**合并访问(Coalesced Access)**的原则,即让一个Warp内的32个线程访问连续的内存地址,从而让硬件将多次访问合并为一次高效的内存事务,以充分利用带宽。SM的调度器以Warp为单位分派指令,在一个Warp内,所有32个线程在同一时刻执行完全相同的指令,但处理的数据不同,这种模型被称为。

VectorShift的博客 220

【AI智能体】Dify集成 Echarts实现数据报表展示实战详解

Dify集成 Echarts 实现智能数据报表集成与展示实战详解

congge 5961

Android开发必看:Toast在API 30+上的适配指南(附完整代码示例)

本文详细解析了Android 11(API 30)及以上版本对Toast施加的核心限制,包括文本Toast定位失效和自定义视图废弃。为帮助开发者平稳适配,文章提供了放弃定位、谨慎使用自定义Toast等策略,并重点推荐了官方替代方案Snackbar,附有完整的代码示例和架构思考,是安卓开发者的必备适配指南。

weixin_28396629的博客 113

YOLOv11 改进 - 主干网络| 清华大学CloFormer AttnConv :利用共享权重和上下文感知权重增强局部感知,注意力机制与卷积的完美融合

本文介绍了轻量级视觉变换器CloFormer及其核心模块AttnConv在YOLOv11中的结合应用。为解决视觉变换器缩小到移动设备友好尺寸时性能下降的问题,提出CloFormer,其引入AttnConv操作符。AttnConv融合共享权重和上下文感知权重,先通过深度卷积提取局部表示,再用上下文感知权重增强特征,还结合传统注意力减少FLOPs,使模型感知高频和低频信息。我们将AttnConv集成进YOLOv11,实验表明,CloFormer在多个视觉任务中表现优越,改进后的YOLOv11也取得了良好实验结果

魔改工程师的博客 989
上一篇: android的开发基础之--------创建广播接收者的两种方式
下一篇: Android 复制粘贴对话框弹出监听实现
杨鑫校
博客等级 码龄11年 24粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值