首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让android上的吐司一直显示到用户触摸屏幕?

要让Android上的吐司(Toast)一直显示到用户触摸屏幕,可以通过以下步骤实现:

  1. 创建一个自定义的Toast布局,用于替代系统默认的Toast样式。可以使用LinearLayout或RelativeLayout等布局容器,并在其中添加一个TextView用于显示Toast的文本内容。
  2. 在代码中使用Toast的setView()方法将自定义的布局设置给Toast对象。
  3. 调用Toast的show()方法显示Toast。
  4. 在显示Toast之后,使用一个透明的全屏幕的Activity覆盖在当前界面上,以拦截用户的触摸事件。
  5. 在拦截用户触摸事件的Activity中,通过重写dispatchTouchEvent()方法,判断用户是否触摸屏幕。如果用户触摸屏幕,则关闭该Activity,同时隐藏Toast。

以下是一个示例代码:

代码语言:txt
复制
// 创建自定义的Toast布局
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast, (ViewGroup) findViewById(R.id.custom_toast_container));
TextView text = layout.findViewById(R.id.custom_toast_text);
text.setText("Hello, Toast!");

// 创建Toast对象并设置自定义布局
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);

// 显示Toast
toast.show();

// 创建透明的全屏幕Activity
Intent intent = new Intent(this, FullscreenActivity.class);
startActivity(intent);

在FullscreenActivity中的dispatchTouchEvent()方法中,可以添加以下代码:

代码语言:txt
复制
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
    // 判断用户是否触摸屏幕
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        // 关闭当前Activity
        finish();
        // 隐藏Toast
        toast.cancel();
        return true;
    }
    return super.dispatchTouchEvent(event);
}

这样,当用户触摸屏幕时,FullscreenActivity会被关闭,同时Toast也会被隐藏。请注意,这种方法需要在AndroidManifest.xml中将FullscreenActivity设置为透明主题(android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen")。

推荐的腾讯云相关产品:腾讯移动推送(https://cloud.tencent.com/product/tpns)可以用于在Android设备上实现消息推送功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android来电归属地提醒

这个小框框其实就是一个自定义的吐司Toast。吐司是一个特殊的窗体,显示在所有窗体的最上方。...归属地查询,其实就是自定义一个吐司,然后注册一个服务,后台监听响铃状态,响铃的时候显示吐司,就达到了归属地的效果。...更改这里面的一些参数就可以更改吐司的样式。自定义一些我们比较喜欢的样式。 吐司是怎么显示到屏幕上面的呢?源码里面还有这么一段代码。...WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;   按照上面的步骤,定义好一个归属地窗体了,但是这个窗体在调用removeView方法前,会一直显示在屏幕上...如何让窗体只在来去电的时候显示呢? 将上面的代码写在服务中,开机启动服务就可以了。但是,这个窗体现在会一直显示在所有界面上面,因为吐司是一个特殊的窗体,会显示在所有窗体的上面。

1.4K70

Android窗口管理分析(1):View如何绘制到屏幕上的主观理解

窗口管理知识图谱.png WMS的作用是窗口管理 不负责View绘制 既然是概述,我们不妨直观的思考一个问题,Activity是如何呈现到屏幕上的,或者说View是如何被绘制到屏幕上来的?...wmParams.width = 800; wmParams.height = 800; mWindowManager.addView(mview, wmParams); 以上代码可以在主屏幕上添加一个...并且这些绘制信息是如何传递给SurfaceFlinger服务的呢?...,通知SF图层混排,之后,SF再将数据渲染到屏幕。...View绘制与共享内存.jpg 总结 其实整个Android窗口管理简化的话可以分为以下三部分 WindowManagerService:WMS控制着Surface画布的添加与次序,动画还有触摸事件 SurfaceFlinger

2.2K61
  • 2014-10-27Android学习------自定义widget的监听事件的实现-----城市列表应用程序

    上面一篇文章我们学习完了 字母的列表的显示,但是里面我们点击一个字母 马上跳到该字母对应的城市,并且在视图上面显示一个自定义吐司 这些事件的处理是怎么样完成的呢?...如果我们把它显示在我们的布局文件中,又想去监听一些触摸事件,那么我们必须在自定义构件中定义这个接口 然后在使用它的时候去实现未实现的方法 那么在我们activity类中必须首先要干的事就是定义出一个...,让这个字母一种自定义的方式显示一段时间 变量:private Handler handler;// import android.os.Handler; 这里请看上篇文章 Handler...);// 让这个线程停止运行,因为上一步触摸导致这个线程处于运行中 // 延迟1.5秒后执行,让overlay为不可见 handler.postDelayed(overlayThread, 1500...} 到这里位置 我们就搞定了这个自定义控件的监听事件了,下面就是如何去调用它了 1.定义这个控件变量:private MyLetterListView letterListView; 2.在onCreate

    41730

    悬浮窗开发设计实践

    ,且悬浮窗可拖拽,不影响其他界面焦点;点击悬浮窗可返回原来的Activity1.2 遇到问题什么是悬浮窗全局悬浮窗在许多应用中都能见到,点击Home键,小窗口仍然会在屏幕上显示。...层:将WindowManagerService管理的窗口按照一定的次序显示在屏幕上WMS(WindowManagerService)相关概念Window:它是一个抽象类,具体实现类为 PhoneWindow...在主屏幕上添加一个TextView并展示,并且这个TextView独占一个窗口。...然后在移动(ACTION_MOVE)的时候,如果用户移动了手指,那么就拦截本次触摸事件,从而不让点击事件生效。...最后在手指抬起(ACTION_UP,ACTION_CANCEL)的时候,返回记录的触摸移动标记。如果是true表示自己消费事件,则不会让点击事件生效。

    2.5K40

    推荐一款好用且能兼职赚钱的自动化工具 - Hamibot

    最近发现一款神器「 Hamibot 」,它是一款 Android 端的自动化工具,它基于 AutoJS 源码进行的二次开发 官方网站:https://docs.hamibot.com/ Hamibot...实用技能 2-1 App 保活在线 自动化脚本运行实际上是 App 接受到 Web 端 Hamibot 控制台发送的指令,进而驱动手机进行的一系列动作,所以保证 Hamibot App 在后台一直运行变得非常重要...),然后在开发者选项中开启「 不锁定屏幕 」功能,这样在手机充电时,屏幕不会休眠 关闭省电策略 在手机应用设置中,选择省电策略为「 不限制 」,这样 App 会在后台一直运行 保证手机一直联网 只有手机一直联网...触摸操作是基于屏幕坐标进行点击、长按、滑动等操作,但是该操作需要 Android 7.0 以上或 Root 权限才能有效 PS:对于一些基于元素的点击操作失效的场景,换成触摸操作反而能很好的解决问题...login'; //直接传入一个字典作为参数 r = http.postJson(url, { username: 'xag', password: '123456' }); //获取请求的响应并弹出吐司

    1.6K20

    2014-10-27Android学习------布局处理(八)------自定义吐司(Toast)-----城市列表应用程序

    说白了这个初始化函数就是在当前的窗体上添加一个视图 :这个视图就是我们自定义的吐司(Toast) 这里也告诉我们一点:如果我们想去实现某个方法,从Android的文档中去找 我们需要的东西是最合适的...说白了重载run()函数,让这个控件显示不可见 使用GONE变量的好处是下面这个: INVISIBLE:仍旧会占用空间,只是内容不显示。GONE:不会占用空间。...这里我们还有明白一点就是:在当前的视图上面显示一个小吐司,消息(UI)更新是由当前的activity主线程来执行呢,还是由子线程来执行呢?...因为这个是个内部类,上一步我们有可能已经触摸了某个字母的,这个线程是在运行着的,当我们再触摸一个字母的时候,我们需要先让这个线程对象停止掉, 方法postDelayed的作用是延迟多少毫秒后开始运行:这个函数的作用就是让这个线程延迟...到此为止 这个自定义的吐司从创建到使用基本就介绍完了,它的源代码: public class CityList extends Activity { private BaseAdapter

    62330

    《Android编程权威指南》之Android开发初体验

    硬件设备 模拟器 or 真机 第一个Android应用 Android 开发基础 activity是Android SDK中Activity类的一个具体实例,负责管理用户与屏幕的交互。...布局定义了一些界面对象(UI)以及它们显示在屏幕上的位置。布局写在XML文件中。...地址:https://jaeger.itscoder.com/android/2016/02/14/android-studio-tips.html 绘制 UI 组件是用户界面的构造模块,可以显示文字或图像...,与用户交互,甚至安排布置屏幕上的其他组件。...activity子类的实例被创建后,onCreate(Bundle)方法被调用,并通过调用setContentView()方法获取管理属于自己的用户界面,根据传入的布局资源ID,生成指定布局视图并将其放置在屏幕上

    1.2K20

    为 Android 应用打造精良的 Chrome OS 使用体验

    作者 / Chrome OS 团队 从发布我们的首款平板电脑和可拆分式笔记本,到在日本和德国等新市场推出 Chromebook,我们一直在努力使 Chrome OS 设备的生态系统满足如今应用用户们的需求...△ Asphalt 8: Airborne △ Concepts 在今年的 I/O 开发者大会上我们有一场专门的演讲,为大家介绍如何让应用在各种外形和尺寸的设备上都能拥有良好的视觉和性能表现。...触控板 当有人在带触摸板的桌面设备上使用您的应用时,他们会希望使用双指轻扫触摸板进行滚动;但在移动设备上,用户通常会按住并拖动屏幕来实现滚动。...界面布局 如果一个应用的界面布局没有专门适配过大屏幕,那当它运行在大屏幕上时效果会非常尴尬——大量被浪费的空间,和非常不顺手的导航,这些都会让用户感到困惑。...Play files Chrome OS 文件管理器在 Play files 文件夹里可以显示 Android 的 /sdcard 文件夹,从而让用户可以通过 Chrome 容器读写 Android 文件

    35810

    行为变更 | Android 12 中不受信任的触摸事件

    我们在 Android 12 中进行了一些变更,来提升应用和平台的安全性,进而使我们的用户能够拥有更安全的使用体验。回顾关于隐私和安全的文章,请参阅: 政策更新 | 开发者如何处理软件包可见性。...Picture-in-Picture (PIP): PIP 功能允许应用在一个小窗口中显示内容,用户可以通过固定到屏幕一角的小窗口观看视频,同时在应用之间进行导航或浏览主屏幕上的内容。...如果您的应用不能使用上述 API,而是让触摸事件直接通过其窗口传递,那么在 Android 12 中它们可能无法按预期传递到下层。...因为对下层其他应用的触摸事件会被屏蔽,所以这样的方法在 Android 12 上就不再起作用了 (注意与前面提到的豁免条件的区别,在这里我们改变的是内部视图,而不是窗口)。...半透明窗口 如果您使用了一个 TYPE_APPLICATION_OVERLAY 窗口,并需要在显示内容时允许触摸事件穿透下去,那您就必须降低窗口的不透明度,让用户能够合理地看到他们在窗口后所触摸的 UI

    1.4K30

    一篇文章,搞定五种类型的UI通知栏设计

    2.推送通知 推送通知是出现在移动设备的锁定屏幕上并引起很多关注的通知。 在 Apple iOS 中推送通知。图片来自苹果 优点: 很难忽略推送通知。用户很可能会注意到推送通知。...通过对推送通知进行分组来最小化推送通知的数量。Android 和 iOS 允许创建一个汇总几个通知的通知。您可以显示摘要,而不是显示多个通知。 多个通知汇总并显示在折叠视图中。图片来自谷歌。 3....Toast 会在短暂的超时(最多十秒)后自动从屏幕上消失。 Android 中的 Toast 通知 优点: Toast 是上下文相关的。用户不必切换上下文来阅读信息。 不要中断用户体验。...它们暂时出现,不需要用户输入即可消失。 缺点: 丢失信息的风险。默认超时可能不足以让某些用户阅读通知。当吐司在用户阅读消息之前消失时,这是一个糟糕的用户体验。...何时使用: Toast 是一种很好的操作状态。例如,消息发送应用程序可以在消息发送成功时显示吐司“消息发送”。 提示: 不要使用 toast 来显示与当前用户任务无关的信息。

    3.1K20

    简单了解下无障碍设计模式

    例如,播放视频 5 秒后,播放按钮控件可能会从屏幕上淡出。 高优先级的控件 避免在有高优先级功能的控件上使用定时器,因为如果这些控件消失的太快,用户可能不会注意到这些控件。...视觉反馈(如标签、颜色和图标)和触摸反馈向用户显示了可用的 UI。 导航应该具有清晰的任务流程,和最少的步骤。在频繁使用的任务上,应该实现聚焦控制、或控制键盘和读取焦点的功能。...启用焦点导航 使用焦点控制导航 屏幕阅读器 屏幕阅读器为用户提供了多种屏幕导航的方法,包括: 屏幕阅读器的触摸界面允许用户在屏幕上移动手指,以听到手指正下方的内容。这使用户能快速了解整个界面。...视力低下或没有视力的用户会从清晰易懂的文字描述中受益。无障碍文本是指供屏幕阅读器软件使用的文本,例如 Android 上的 TalkBack、iOS 上的 VoiceOver、桌面端的 JAWS。...不要提及确切的手势和交互 不要告诉用户如何与控件进行身体上的交互,因为它们可能使用键盘或其他设备进行导航,而不是用手指或鼠标进行导航。无障碍软件会为用户描述正确的交互方式。

    4.8K40

    Android 十年之路: 主屏与导航

    从最初开始,Android 就一直是强调创新和个性的强大平台,今天也依然如此。团队的重点关注目标之一就是简洁,我们致力于让用户界面 (UI) 感觉更加现代化,更加平易近人。...我们在首个版本中引入了很多令人兴奋的功能,包括主屏幕 Widget 和可自定义界面等。 虽然这是一个良好的开端,但也有一些事情让人感到困惑。当时的系统使用了大量的实体按钮并同时搭载了触摸屏幕。...主屏幕上充斥着不同形状图标大杂烩的日子一去不复返了。“显示全部应用” 的按钮被手势取代: 只需在主屏幕向上滑动即可显示所有应用。...将快速搜索框移到底部还让我们找到了一种在手机上进行导航的新方法: 在将搜索功能紧密地集成到操作系统中之后,用户可以快速找到他们想要的应用和内容。...我们发布 Oreo 版本的目标是,让 Android 更干净,更精致,让您的主屏幕在保留强大功能的同时,依然平易近人。

    72610

    详解如何将 Android 手机投屏在 Ubuntu 上

    1 你知道如何将Android手机投屏到Linux系统吗?本文就以 Scrcpy 软件为例,来讲解一下如何将Android手机投屏到Ubuntu系统。...Scrcpy 是一个开源的命令行工具软件,被设计用于使计算机用户能通过android adb或通过usb数据线控制其Android设备,支持通过鼠标和键盘对Android设备操作,更重要的是无需root...显示触摸 在展示时,有些时候可能会用到显示触摸点这项功能(在设备上显示)。 Android在 开发者设置 中提供了这项功能。...Scrcpy 提供一个选项可以在启动时开启这项功能并在退出时恢复初始设置: scrcpy --show-touches scrcpy -t 请注意这项功能只能显示 物理 触摸(要用手在屏幕上触摸)。...---- 通过本文你应该可以学会如何将Android手机投屏到自己的Ubuntu/Linux Mint/Debian系统中,不妨尝试一下。

    3.6K10

    是时候为各式设备适配完善的输入支持了

    那么在诸如手机、可折叠设备、平板电脑、Chromebook、支持外接显示屏的 Chromebox、带内置显示器的 Chromebase、Android TV 等各种 Android 设备类型中,开发者应该如何确保不同的输入方式适用于自己的应用...△ 多种 Android 设备 要知道并非所有的用户都使用手机触摸屏与您的应用交互,一部分用户可能使用的是键盘和触控笔等,甚至一部分用户有 无障碍 需求。...我们非常兴奋,在支持触控的 PC 上,Android 模拟器现在也可以支持多点触控,这让您可以测试需要使用多个手指的手势与应用进行交互,比如双指张合、缩放和其他触摸交互。...Microsoft 也一直在利用这些模拟器更新来开发和优化自己的应用,例如在包括 Surface Duo、大屏幕和其他可折叠设备等多种设备类型上测试触控笔的交互。...回顾 大屏幕的 Android 设备已经出现而且愈发普及,在 Android 上提供出色的输入支持一直很重要,而对于可折叠设备、平板电脑和 Chrome 操作系统来说尤为重要。

    1.1K20

    笔记53 | 管理系统UI(一)

    隐藏状态栏(或者是导航栏)可以让内容得到更多的展示空间,从而提供一个更加沉浸式的用户体验。 图1展示了显示状态栏的界面 ? 图1. 显示状态栏. 图2展示了隐藏状态栏的界面。...详细可以看第五节如何监听并响应UI可见性的变化。 在不同的地方设置UI标签是有所区别的。如果你在Activity的onCreate()方法中隐藏系统栏,当用户按下home键系统栏就会重新显示。...让内容显示在状态栏之后 在Android 4.1及以上版本,你可以将应用的内容显示在状态栏之后,这样当状态栏显示与隐藏的时候,内容区域的大小就不会发生变化。...隐藏导航栏 这节课将教您 在4.0及以上版本中隐藏导航栏 让内容显示在导航栏之后 本节课程将教您如何对导航栏进行隐藏,这个特性是Android 4.0()版本中引入的。...2)让内容显示在导航栏之后 在Android 4.1与更高的版本中,你可以让应用的内容显示在导航栏的后面,这样当导航栏展示或隐藏的时候内容区域就不会发生布局大小的变化。

    1.4K40

    关于系统工具栏和全屏沉浸模式

    ]状态栏的一些认识 [Android]锁定屏幕 这三篇是按顺序写的,本来只是项目上的应用,其实并不需要深究的,查到方法并能用起来就好。...这么做的意义就是可以让用户目光的焦点集中在程序要显示的内容上面,避免了屏幕上过多的东西分散用户注意力。   可能这么说起来感觉这么做没有太大的意义,但实际上用户体验就是各方面一点点的细节积累起来的。...有些时候用户在比较几款 APP 的时候都会有很明显的喜欢哪个不喜欢哪个,但让他具体列出来差距在哪里他却列不出来。这其中的原因大多就在这些小细节上,说不出但能感觉的到。...使用时,应用内容显示的尺寸不会变化,只会把两条 bar 上的图标变淡,一旦触摸 bar 的区域,所有图标就会显现出来,不再消失。   ...当然,既然可以让程序内容显示在 status bar 的后面,那么相同效果也可以在 Navigation bar 上设置。

    1.5K20

    让你的应用完美适配平板

    老生常谈,屏幕适配首先来看下最直观的屏幕适配吧,毕竟是直接展示给用户看的嘛!今日头条的方法其实说起适配大家首先想到的大名鼎鼎的今日头条的屏幕适配方案,但是!凡事就怕但是!...大家可以看下一些主流应用在 Pad 上的显示效果:图片其实不止这一个应用,很多都显示地不尽人意,那么应该如何同时适配好手机和 Pad 呢?简单粗暴的方法什么方法呢?很简单,直接做两个应用!...API 调用,确定应用如何显示其 activity(并排或堆叠),系统处理其余的工作,根据创建的配置确定呈现方式。...但是在 Pad 上,用户虽然也会用手机在屏幕上进行操作,但会更频繁地使用键盘、鼠标、触控板、触控笔或游戏手柄与应用互动,这个时候应用的输入兼容性就显得尤为重要!...打完收工本文从屏幕适配到输入兼容性来说了下普通应用如何适配 Pad,有用的地方大家可以参考。当然如果能帮助到大家,哪怕是一点也足够了。就这样。

    2.1K50
    领券