本博文源于安卓基础对Toast类做简单的实例测试,先将理论后操作实践。大家可以先看实践,实践好玩的话,跟着敲,遇到不懂的,可以再看理论,如果实践已经敲完回顾理论才能更加深理论知识的基础。

理论篇

在安卓系统中,可以用消息提示类(Toast)来显示帮助或提示消息,该提示消息以浮于应用程序之上的形式显示在屏幕上。因为它并不获得焦点,所以不会影响用户的其他操作,使用信息提示类(Toast)的目的是尽可能不中断用户操作,让用户看到提示信息。

Toast类的常用属性和对应方法

方法 说明
Toast(Context context) 构造方法
makeText(Context context,CharSequence text,int duration) 以特定时长显示文本内容,参数为text为显示的文本,参数duration为显示的时间
getView() 获取视图
setDuration(int duration) 设置提示信息的存续时间
setView(View view) 设置要显示的视图
setGravity(int gravity,int xOffset,int yOffset) 设置提示信息在屏幕上的位置
setText(int resId) 更新makeText()方法所设置的文本内容
show() 输出提示信息
LENGTH_LONG 提示信息显示较长时间的常量
LENGTH_SHORT 提示信息显示较短时间的常量

实践篇

下面对Toast做简单的测试,并给出详细的分析

测试效果

先看下测试效果,本案例将实现按默认方式、自定义方式和带图标方式显示Toast信息提示的效果。



大家可以看到一个TextView类,三个按钮Button类,然后点击相应的按钮直接可以实现弹出Toast消息对话框

实现步骤

创建新项目 My sevenApplication


点进Project—>Empty Activity—>然后名字改下,finish即可。成功之后,点击箭头运行程序。

程序正常可以跑成功hello world字样,下面我们继续

上传资源drawable

将此图另存为“xx.gif"

拖到drawable,ok后,我们基础图片有了

布局activity_main.xml

对主界面进行布局,回想一下,我们有什么。TextView类一个,按钮Button三个。根元素采用线性布局,代码下方对细节进行详解

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="消息提示Toast"android:textSize="24sp"android:gravity="center_horizontal"/><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/btn1"android:text="默认方式"android:textSize="20sp"/><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/btn2"android:text="自定义方式"android:textSize="20sp"/><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/btn3"android:text="带图标方式"android:textSize="20sp"/>
</LinearLayout>

LinearLayout详解

对水平方向width和height进行设置后,其余默认设置不做改动。

TextView详解

文字一定要text出,textSize设置只为更加美观。如果想要真正分离,可以放到string里,然后内部调用。如果有兴趣可以看这篇博文
[Android]小白实现登录界面(附完整源码)
里面有对string做详细案例分析

Button详解

id设置是为了后面java文件更好调用操控,height与width不多说,text也要设置,字体更美观

MainActivity.java文件配置

想一下,要想实现打印Toast是不是一定要用到Toast类的。然后要用到java的重载,一个函数实现三个按钮的功能,安卓代码都是先激活控件,再重写类。具体代码如下

package com.example.mysevenapplication;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;public class MainActivity extends Activity implements View.OnClickListener {Button btn1,btn2,btn3;Toast toast;LinearLayout toastView;ImageView imageCodeProject;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn1 = (Button)findViewById(R.id.btn1);btn2 = (Button)findViewById(R.id.btn2);btn3 = (Button)findViewById(R.id.btn3);btn1.setOnClickListener(this);btn2.setOnClickListener(this);btn3.setOnClickListener(this);}public void onClick(View v){if(v==btn1) {Toast.makeText(getApplicationContext(), "默认Toast方式", Toast.LENGTH_SHORT).show();}else if(v==btn2) {toast = Toast.makeText(getApplicationContext(),"自定义Toast的位置",Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER,0,0);toast.show();}else if(v==btn3) {toast = Toast.makeText(getApplicationContext(),"带图标的Toast",Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER,0,80);toastView = (LinearLayout) toast.getView();imageCodeProject = new ImageView(this);imageCodeProject.setImageResource(R.drawable.xx);toastView.addView(imageCodeProject,0);toast.show();}}
}

点击运行

效果回放

就是实践篇初始效果哟!

总结

总体步骤如下

  • 创建新项目,跑成功hello world
  • 上传图片资源drawable
  • 对activity_main.xml进行布局
  • 配置MainActivity.java代码
  • 点击运行,收获喜悦。

很高兴博文能帮助到大家!

Android|Toast理论篇(附自制图标信息框实现)相关推荐

  1. 火山应用系列之炫彩模块自制【信息框】

    模块支持库 1.炫彩界面支持库 一.我们制作一个信息框 效果图 1.首先打开炫彩IDE---->文件--->新建项目---->界面设计美化-无代码文件-->输入项目名称---& ...

  2. yocto系列讲解[理论篇]68 -Yocto版本信息查询稳定版本和EOL版本

    By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! ...

  3. 百度地图android弹出窗口,【代码】Android百度地图点击弹出信息框

    分享给大家一篇技术文章,还有很多不足之处,欢迎吐槽!期待各位android爱好者,加入android交流群:278744577,加群请验证:qy88,共同探讨! 如图: 我是在百度的demo上改的主要 ...

  4. 再发布一个windows live writer 插件 图标信息框 wlw plugin icon info frame

    原地址: http://www.zu14.cn/2008/12/14/wlw_plugin_icontip/ 自上次发布 windows live writer 插件 coolemotion 之后,已 ...

  5. Android NFC开发-理论篇

    Android NFC开发-理论篇 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/CSDN_GYG/article/details/72884849 ...

  6. Android 号码, 来电归属地 Jni 使用C++对二进制文件查询(一) 理论篇

    1.效果图 左边的是应用程序界面,只是做个测试.右边的是应用程序信息,你会发现数据这块很小,只有420KB,要知道里面有近280,000记录. 2.尝试使用sqlite数据库, 用db格式文件. 随便 ...

  7. 第37篇 Android Studio实现点击图片显示信息(四)布局及资源文件

    第37篇 Android Studio实现点击图片显示信息(四)布局及资源文件 4.布局文件 4.1.strings.xml 4.布局文件 整体是一个垂直布局,然后在设置一些水平布局就行了. < ...

  8. 第34篇 Android Studio实现点击图片显示信息(一)需求

    第34篇 Android Studio实现点击图片显示信息(一)需求 1.需求 1.1.效果 1.2.功能 1.3.RadioButton实现 1.4.设置RadioButton样式 1.需求 1.1 ...

  9. Android期末复习篇_8章节练习题附答案

    说明 Android移动应用开发章节练习题,注意 此答案并非标准答案,仅供期末复习参考. 加粗题目为强调题目 目录 第一章-安卓基础入门 第二章-安卓常见页面布局 第三章-安卓常见页面控件 第四章-安 ...

最新文章

  1. 判断浏览器类型及版本
  2. dell塔式服务器显示卡端口类型,戴尔T610塔式服务器
  3. quartz 表结构 oracle,Quartz所使用的表的说明
  4. Java学习指南(15) 链表
  5. An unexpected error prevented the server from fulfill your request.(HTTP500)
  6. java对word文档的操作
  7. 从东京奥运会看js设计模式之发布订阅模式
  8. 物种内共线性分析——JCVI安装以及数据下载(一)
  9. oracle EBS 基于Host并发程序的开发(转)
  10. 出国留学考试指导大全:托福85分是个坎儿
  11. 诺基亚n8和n9java_诺基亚官方发布 N8与N9的十大区别
  12. anaconda下载python的库_Anaconda下载及安装及查看安装的Python库用法
  13. PS AD命令之Add-ADGroupMember
  14. mySQL下载后的初次使用
  15. 过了MySQL 8 OCP(1Z0-908),交一下作业
  16. Vue中created()与activated()区别
  17. Loup Verlet计算统计力学的创始人
  18. 【指针】*p++、(*p)++、*++p、++(*p)都是什么东西?
  19. 华三NS228交换机虚拟局域网划分方法
  20. iPhone4S和iPad2的iOS5.0.1完美越狱

热门文章

  1. (python)企业发放的奖金根据利润来确定提成比例
  2. 用Google计算机视觉API进行猫狗图片识别
  3. Python 全栈系列97 - 资源梳理
  4. 支付业务与技术架构学习总结(11)——支付中台的几个面向:支付业务、资金核算、面向风控等切面
  5. 字节Byte与位bit
  6. 【C++资料免豆下载】大量教程+工具+源码下载地址汇总(转载)
  7. python一键去抖音视频水印工具,请勿用于学习以外的用途!
  8. 阅读《构建之法》并提问
  9. Nginx基础知识体系
  10. 股票入门基础知识|年报如何读