码迷,mamicode.com
首页 > 移动开发 > 详细

Android Studio 之 Toast

时间:2020-03-01 14:17:51      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:protect   code   sid   img   textview   apk   you   line   ppc   

 

•参考资料

  [1]:Android Studio 在活动中使用Toast

  [2]:AndroidStudio自定义Toast及其用法

•简介

  Toast 是 Android 系统提供的一种非常好的提醒方式;

  在程序中可以使用它将一些短小的信息通知给用户;

  这些信息会在一段时间内自动消失,并且不会占用任何屏幕空间

•Toast.makeText()函数原型

  Toast.makeText(参数1,参数2,参数3); 

  • 参数1是 Context,也就是 Toast 要求的上下文,由于活动本身就是一个Context对象,因此直接传入XXActivity.this 即可,或者填入 getApplicationContext()
  • 参数2是 Toast 显示的文本内容
  • 参数3是 Toast 显示的时长,有两个内置常量可以选择 Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG

•自定义 Toast

  效果展示图:

    技术图片

   实现方法:

    首先,在 layout 文件夹下自定义一个 .xml 文件,并命名为 toast.xml;

    在里面放入如下代码:

技术图片
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:layout_gravity="center">
 6 
 7     <com.example.table.ImageViewPlus
 8         android:id="@+id/toast_iv_1"
 9         android:layout_centerHorizontal="true"
10         android:layout_width="100dp"
11         android:layout_height="100dp"
12         android:scaleType="centerInside" />
13     <TextView
14         android:layout_below="@id/toast_iv_1"
15         android:layout_centerHorizontal="true"
16         android:id="@+id/toast_tv_1"
17         android:layout_width="wrap_content"
18         android:layout_height="wrap_content"
19         android:textSize="26sp"
20         android:textColor="#D32F2F"
21         android:gravity="center"
22         />
23 
24 </RelativeLayout>
View Code

    其中的 <ImageViewPlus> 控件是我之前自定义的圆形 ImageView,详情见我这篇博客

    然后,自定义一个 Empty Activity 并命名为 DefineToastActivity,在其对应的 .xml 中添加如下代码:

技术图片
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     tools:context=".DefineToastActivity"
 8     android:background="#1976D2">
 9 
10     <LinearLayout
11         android:layout_width="wrap_content"
12         android:layout_height="wrap_content"
13         android:layout_alignParentBottom="true"
14         android:layout_centerHorizontal="true"
15         android:orientation="horizontal">
16 
17         <Button
18             android:id="@+id/btn_1"
19             android:layout_width="wrap_content"
20             android:layout_height="wrap_content"
21             android:text="Cat" />
22         <Button
23             android:id="@+id/btn_2"
24             android:layout_width="wrap_content"
25             android:layout_height="wrap_content"
26             android:text="Dog" />
27     </LinearLayout>
28 </RelativeLayout>
activity_define_toast.xml

    并在 DefineToastActivity.java 中设置点击事件的代码,并设置  Toast;

技术图片
 1 package com.example.table;
 2 
 3 import android.os.Bundle;
 4 import android.view.Gravity;
 5 import android.view.LayoutInflater;
 6 import android.view.View;
 7 import android.widget.Button;
 8 import android.widget.ImageView;
 9 import android.widget.TextView;
10 import android.widget.Toast;
11 
12 import androidx.appcompat.app.AppCompatActivity;
13 
14 public class DefineToastActivity extends AppCompatActivity {
15 
16     private Button Btn1;
17     private Button Btn2;
18     private Toast toast;
19     private LayoutInflater inflater;
20     private View view;
21     private ImageView Iv;
22     private TextView Tv;
23 
24     @Override
25     protected void onCreate(Bundle savedInstanceState) {
26         super.onCreate(savedInstanceState);
27         setContentView(R.layout.activity_define_toast);
28 
29         toast = new Toast(getApplicationContext());
30         inflater = LayoutInflater.from(DefineToastActivity.this);
31         view = inflater.inflate(R.layout.toast,null);
32         Iv = view.findViewById(R.id.toast_iv_1);//找到 toast.xml 中 ImageView 控件的 id
33         Tv = view.findViewById(R.id.toast_tv_1);//找到 toast.xml 中 TextView 控件的 id
34 
35         Btn1 = findViewById(R.id.btn_1);
36         Btn2 = findViewById(R.id.btn_2);
37 
38         Btn1.setOnClickListener(new View.OnClickListener(){
39 
40             @Override
41             public void onClick(View v){
42                 Iv.setImageResource(R.mipmap.cat);
43                 Tv.setText("喵喵喵");
44                 toast.setView(view);
45                 toast.setDuration(Toast.LENGTH_LONG);
46                 toast.setGravity(Gravity.CENTER,0,0);//将该toast居中显示
47                 toast.show();
48             }
49         });
50         Btn2.setOnClickListener(new View.OnClickListener(){
51 
52             public void onClick(View v){
53                 Iv.setImageResource(R.mipmap.dot);
54                 Tv.setText("汪汪汪");
55                 toast.setView(view);
56                 toast.setDuration(Toast.LENGTH_LONG);
57                 toast.setGravity(Gravity.CENTER,0,0);//将该toast居中显示
58                 toast.show();
59             }
60         });
61     }
62 }
DefineToastActivity.java

 

Android Studio 之 Toast

标签:protect   code   sid   img   textview   apk   you   line   ppc   

原文地址:https://www.cnblogs.com/hyacinthLJP/p/12389334.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!