Android学习之Toast的自定义_标题栏的隐藏

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

Toast.makeText(context,text, duration).show();是系统默认的Toast其实在开发中根据我们需要的不同,我们还可以对Toast进行自定义

 

自定义位置的Toast:

Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
toast.show()

自定义视图的Toast:

新建布局文件toast_layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/toast_layout_root"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="8dp"
              android:background="#DAAA"
              >
    <ImageView android:src="@drawable/droid"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_marginRight="8dp"
               />
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textColor="#FFF"
              />
</LinearLayout>

在点击事件的处理方法中书写代码:

LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_layout,
                               (ViewGroup) findViewById(R.id.toast_layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("This is a custom toast");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();

即可完成一个自定义视图的Toast。

 

到这里我们学习了两种自定义的Toast一个是位置,一个是视图,通过查看源代码我们知道Toast显示时间的设置只有Toast.LENGTH_SHORT和Toast.LENGTH_LONG两个值,当这两个值所设置的显示时间不满足我们的需求的时候,我们就需要自定义Toast的显示时间。

在源码中我们看到,show方法是控制Toast显示的,另外还有一个方法是cancel是取消Toast显示的。如果我们能在一定的时间段后调用Toast的cancel方法就可以控制Toast的显示时间。在Android中有这样一个东西就是Handler翻译成中文叫做操作者,而操作者,是用来操作出来消息的,消息在传递的过程中,是可以指定它的延迟时间的,我们可以通过Handler的消息延迟操作来控制,Toast的show和cancel的调用。来达到控制Toast显示时间的目的。

示例代码如下:

自定义Toast,将显示和取消两个方法分开写:

import android.content.Context;

import android.widget.Toast;

 

public class MyToast {

        

         privateContext context;

         privateToast toast;

         publicMyToast(Context context){

                   this.context=context;

         }

         public  void show(String str){

                   if(toast==null){

                            toast=Toast.makeText(context,str, 0);

                            toast.setDuration(Toast.LENGTH_LONG);

                            toast.show();

                   }else{

                            toast.setText(str);

                            toast.show();

                   }

         }

         publicvoid cancel(){

                   if(toast!=null){

                            toast.cancel();

                   }

         }

}

在Activity的代码:

 

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.app.Activity;

import android.view.View;

import android.widget.Button;

public class MainActivity extends Activity{

         Buttontext;

         MyToastmytoast;

         Handlerhandler=new Handler(){

                   publicvoid handleMessage(android.os.Message msg) {

                            mytoast.cancel();

                   };

         };

         @Override

         protectedvoid onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.btn);

                   //找到文本控件

                   text=(Button)findViewById(R.id.btn);

         }

         publicvoid btnclick(View v){

                   mytoast=newMyToast(this);

                   mytoast.show("我是自定义时间的Toast");

                   Messagemsg=new Message();

                   handler.sendMessageDelayed(msg,200);

         }

}

 

到这里全部的自定义Toast都,讲解完毕。但是到目前为止,每次我们运行我们所写的应用,是不是顶部都有一个黑色的标题栏啊,而我们正常的Android手机上的应用是没有这块黑色区域的,其实想让这块黑色区域消失,只需要一行代码,就是requestWindowFeature(Window.FEATURE_NO_TITLE);将这行代码写在setsetContentView();前即可;

 

 

简单自定义Toast 包括普通Toast,自定义的图片Toast,自定义位置的Toast 立即下载

相关推荐

分享Android中Toast的自定义使用

Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。本文将介绍Toast的自定义使用,下面一起来看看吧。

Android 自定义toast总结:纯文本,带图像,带标题栏及自定义背景文字颜色

Android toast自定义,以及shape的颜色动态设定

学苑新空 2455

android开发之自定义Toast

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

android studio的toast,AndroidStudio自定义Toast及其用法

目录1.默认的Toast2.居中的Toast3.自定义的Toast​1.默认的ToastToast.makeText(getApplicationContext(),"默认的Toast",Toast.LENGTH_LONG).show();格式为:Toast.makeText(所在的Activity的Context,"Toast显示的内容",Toast.LENGTH_LONG).show();!!...

weixin_42134117的博客 3043

在trae CN中使用conda环境(已解决)

Trae CN 是字节跳动于 2025 年 3 月 3 日发布的国内首个 AI 原生集成开发环境(AI IDE)123。

zwzscnds的博客 6937

STM32H750实战:如何用CubeMX配置NAND Flash时序(附常见问题排查)

本文详细解析了STM32H750通过CubeMX配置NAND Flash时序的实战技巧,包括硬件连接、时序参数计算与优化策略,以及常见问题如RGB屏幕干扰、多片选冲突的解决方案。特别针对NAND Flash的时序配置和抗干扰设计提供了实用代码示例和优化建议,帮助开发者提升系统稳定性和性能。

weixin_29176179的博客 363

AndroidStudio自定义Toast及其用法

目录 1.默认的Toast 2.居中的Toast 3.自定义的Toast ​ 1.默认的Toast Toast.makeText(getApplicationContext(),"默认的Toast",Toast.LENGTH_LONG).show(); 格式为:Toast.makeText(所在的Activity的Context,"Toast显示的内容",Toast.LENGTH_...

qq_42183184的博客 3万+

软件项目质量管理

识别项目中涉及质量管理的不同角色,如项目经理、质量经理、测试人员等,明确每个角色的职责和任务,包括负责哪些质量管理活动和决策。1、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。2、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。测试用例表是质量控制过程中的关键工具,确保所有功能和场景都被验证,减少项目中的缺陷。1、理解项目质量管理的基本过程,包括质量计划、质量保证、质量控制和质量改进;明确质量管理活动中的角色和职责。

weixin_51996255的博客 1258

Toast系列(一):Toast基本工作原理(android 7.0及以前)

Toast是一个独立的顶级窗口,显示时浮在其他窗口之上,不依赖于任何Activity,即使在任何activity未启动的情况下或者当前位于前台的程序是别的app时,依然可以显示。 各个app都可以随心所欲地在屏幕上弹出Toast,为了避免“百花齐放”,必须有第三者来管理,使其顺序显示。这个第三者就是系统服务INotificationManager。INotificationManager会维护一...

Android Engineer. 1万+

【RT-DETR涨点改进】独家创新改进篇 | AAAI2024 | RT-DETR引入CFBlock增强对长程依赖和全局语义信息的建模能力,有助于提升复杂场景下小目标、遮挡目标的检测精度

本文给大家介绍在RT-DETR中引入CFBlock模块,能够有效提升模型对长程依赖和全局语义信息的建模能力,在保持轻量化和高效推理的基础上增强特征表达力,特别有助于提升复杂场景下小目标、遮挡目标的检测精度,从而实现更优的精度与速度平衡。

Ai缝合怪、助力小伙伴高效发论文 260

远程声控系统(MATLAB代码见优快云资源)

远程声控系统技术报告 一、题目要求 实现一个远程声音控制系统。首先采集不同的语音指示信号,进行适当压缩;然后通过噪声信道实现远程传输,远端接收后再通过适当计算识别出是何指示,最后送入一个处于未知状态、但能控/能观的控制系统,完成不同的控制动作。 二、问题分解与解决思路 2.1 系统设计 实验中以汉语数字语音1~9作为指令,数字语音“1”代表一号指令,数字语音“2”代表二号指令,依次类推。发送端发出语音“1”,发送端对应的数字语音文件为“1b.wav”,通过信源编码对语音进行压缩编码,然后进行信道编码并进行基

业精于勤,荒于嬉 5734

自学安卓复习基础_之二(关于隐藏标题栏和显示Intent/隐式Intent)

今天就写我自己心学习到的知识 1:隐藏标题栏,用代码方式实现 在setContentView()之前执行requestWindowFeature(Window.FEATURE_NO_TITLE); 2:在Activity中Toast的用法 这个东西就是相当于一个小窗口,显示信息Toast.makeText(当前类.this,"显示的信息",Toast.LENGTH.SHORT).sh

venus910224的博客 492

RT-DETR目标检测模型性能评价指标详解,涉及混淆矩阵、F1-Score、IoU、mAP、参数量、计算量等,一文打尽所有评价指标

本文主要讲解的是计算机视觉网络模型的性能评价指标,这是每一篇论文中都需要展示的内容。熟悉每一个评价指标也能够帮助我们在训练和改进模型过程中,更好的观察模型的变化效果。

Limiiiing的博客 3358

Android学习笔记の一

Android学习笔记の一 博主准备从头系统的学习一边Android! 在看《第一行代码》,但是看完就忘o(≧口≦)o。于是打算写点笔记,同时也给大家作为参考。使用LogLog用于调试程序,格式是这样的:Log.d(“你自己起的Tag名称”, “调试信息”) log有 如下几种:Log.v()小日志verbose Log.d()debug Log.i()重要的数据info Log.w()war

further~ 619

2023年高教社杯全国大学生数学建模竞赛 E 题:《黄河水沙监测数据分析》真题解析与 MATLAB 解决方案

🏆 本文已收录于专栏:《滚雪球学数学建模(含历年真题)》,持续更新最新及历年数学建模竞赛资料,每篇内容力求做到“问题讲透、模型讲清、代码可用、论文可参考”,帮助你从零开始逐步建立完整的数学建模知识体系。

**My Coding Family** 904

WorkBuddy CAD 审图救命课:约束、单位、尺寸链一次查清,打样前拦住返工

最危险的 CAD 文件不是打不开,而是看起来完整却混用了毫米与英寸、草图欠约束、关键尺寸没有来源。审图任务必须先列规则,再输出问题位置。 本课不会用“AI 一键完成”制造错觉,而是把 WorkBuddy、FreeCAD 0.21.2、OpenCascade 7.7 与人工审阅组成一条可复现链路。你会从“一份模拟 STEP 文件、参数表、装配基准与审图标准”出发,得到“单位报告、约束清单、尺寸链风险表与人工复核标记”,并学会用真实命令、错误信号和停止条件判断成果能不能进入下一阶段。

yueyeguzhuo的专栏 264

Android开发学习中的注意事项问题2016-5-03(2)

1、隐藏标题栏 原因:愿不愿意隐藏都随你,不隐藏突出标题,隐藏了界面利用更大了一点点 方法:在活动代码中(“那个你建立的活动”.java)中,加入requestWindowFeature(Window.FEATURE_NO_TITLE); 注意:这行代码必须写在加载布局之前,就是setContentView()方法之前,要不然你试试。 2、Toast 这是什么东西呢,

Adelaide_Guo的博客 404

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

安卓学习笔记

1.Log.v() 这个方法用于打印那些最为琐碎的,意义最小的日志信息。对应级别 verbose,是 Android日志里面级别最低的一种。 2.Log.d() 这个方法用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别 debug,比 verbose高一级。 3.Log.i() 这个方法用于打印一些比较重要的数据,这些数据应该是你非常想看到的,可以帮你分析用户行

Wlain的博客 395

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

第四天的学习

Xio习的第三天前几天一直再弄一些材料,现在继续学这个引入布局功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前几天一直再弄一些材料,现在继续学这个 引入布局 创建一个标题栏: 新建布局title.xml : 具体内容: &l

qq_43376152的博客 175

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android:活动的简单使用

  2.1    活动是什么   活动(Activity)是最容易吸引到用户的地方了,它是一种可以包含用户界面的组件, 主要用于和用户进行交互。一个应用程序中可以包含零个或多个活动,但不包含任何活动的 应用程序很少见,谁也不想让自己的应用永远无法被用户看到吧?   2.2    活动的基本用法   到现在为止,你还没有手动创建过活动呢,因为上一章中的 HelloWorldActi...

weixin_34368949的博客 275

我的Android学习笔记(一)

1、在创建项目时,Pacage Name代表包名,要注意的是包名具有唯一性(因为Android系统通过包名来区分不同的应用程序)。 2、引用res目录文件下资源的两种方法:在代码中通过引用R文件中对应资源的id来实现,如R.string.hello_world;在XML中通过@string/hello_world来获得字符串引用。 3、用Log进行打印,而不用System。Log的好处在于:日

liyongqi_的博客 411

Android学习笔记(二)活动(Activity)

2.活动(Activity) 2.1 概念         活动是Android的基本组成单位,每个Activity都被定义为一个单独的类,且都继承自基类:android.app.Activity;它是一种包含用户界面的组件,主要用来与用户进行交互(通俗点讲,可以先理解为一个单独的屏幕、一个交互的窗口,但不完全是这样)。 2.2 基本使用 2.2.1 手动创建活动

代码与酒 1554

Android_Activity(一)

Android_Activity 今天主要是想回忆一下Android中的四大组件之一的Activity,并且顺便整理一下笔记,以后用的时候可以直接拿过来用。并且怀着一颗分享的心,并且欢迎大家一起学习一起探讨的精神。 说到Android中的Activity,想必每一个Android程序猿都不陌生。但是在这里我还是想装一下逼,活动(Activity)是一种可以包含用户界面

androidchw 451

第一行代码学习2(2)

注册活动时的相关事项 在AndroidManifest.xml文件中注册了Activity的格式: name = ".Activity"   android:label = "This is Activity">        name = "android.intent.action.MAIN">    name = "android.intent.cate

zhaojiayi08的博客 380

【第一行代码-Android】学习(一)及在studio的迁移(2)创建活动及布局

①item的添加(以button为例) 在layout目录下的相应xml文件中编写,,选择text更好。 在内添加button代码: <Button android:id="@+id/button_1" android:layout_width="match_parent" android:layout_height="wrap_content

Djoli的博客 579
上一篇: android学习之控件的显示和隐藏
下一篇: 一个程序员的过去10年的心得体会(时刻提醒自己)
wang_shuai_long
博客等级 码龄11年 34粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值