首页
学习
活动
专区
工具
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.3K70

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.1K61

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

40530

悬浮窗开发设计实践

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

2.3K40

推荐一款好用且能兼职赚钱自动化工具 - 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.4K20

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

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

60630

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 文件

30210

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

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

1.3K30

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

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

2.9K20

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

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

4.7K40

Android 十年之路: 主屏与导航

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

71010

详解如何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.4K10

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

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

1.1K20

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

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

1.4K40

android引导用户开启自启动权限方法

需求: 用户第一次安装APP,点击授权按钮,跳转至授权页面(不同手机跳转到不同授权页面),用户授权成功之后,点击返回按钮,直接进入主页面 问题: 1.如何适配不同机型 2.不同机型授权页面显示不同弹窗...", ".ui.activity.autorun.AutoRunListActivity"); } else { // 将用户引导系统设置页面 if (Build.VERSION.SDK_INT =...思路如下: ①首先判断当前机型 ②判断完机型之后,通过intent跳转至不同授权页面 ③在startActivity()之后显示悬浮窗或者是弹窗 ④小米手机在显示弹窗时候写上下面这一句话: getWindow...().setType(WindowManager.LayoutParams.TYPE_TOAST) 因为这里类型没有用“吐司”,所以在授权页面一直显示弹窗 问题3:小米弹窗始终无法显示 在问题2第4...以上这篇android引导用户开启自启动权限方法就是小编分享给大家全部内容了,希望能给大家一个参考。

4.2K10

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

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

1.4K20

屏幕边缘上有趣 1 个像素,看不见、摸不到

▲ 在触摸输入情况下,最右侧是 1920(我屏幕是 2560×1080,所以最右侧是 2560) 测量时候,是手指近乎在屏幕触摸,不断触摸到能够在屏幕看到最小或最大值为止。...更多时候,你程序根本就不会收到这个触摸事件,于是我们也就不能在程序里面更新窗口上显示坐标 1920 了,就像鼠标一样。...于是,你可能遇到问题是: 如果你在屏幕左侧边缘触摸,你程序可以一直收到触摸事件,你能够得到正确响应; 如果你在屏幕右侧边缘触摸,你将仅能偶尔收到零星刚好超出窗口大小触摸坐标,大多数时候收不到触摸事件...,于是你可能无法获知用户屏幕右侧边缘进行触摸。...我试过了,确实能够触摸在整个屏幕生效,但对于双屏用户来说,就能在另外一个屏幕看到“露馅儿”了窗口,对于我这种强迫症患者来说,显然是不能接受

16220
领券