当前位置:   article > 正文

Android|Toast理论篇(附自制图标信息框实现)_toast类

toast类

本博文源于安卓基础对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">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="消息提示Toast"
        android:textSize="24sp"

        android:gravity="center_horizontal"/>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btn1"
        android:text="默认方式"
        android:textSize="20sp"/>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btn2"
        android:text="自定义方式"
        android:textSize="20sp"/>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btn3"
        android:text="带图标方式"
        android:textSize="20sp"/>
</LinearLayout>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
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;
    @Override
    public 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();
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

点击运行

在这里插入图片描述

效果回放

就是实践篇初始效果哟!

总结

总体步骤如下

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/318525
推荐阅读
相关标签
  

闽ICP备14008679号