关于Toast--体验不一样的花式Toast

作者: T9的第三个三角 | 来源:发表于2017-01-04 19:07 被阅读426次
花式Toast
  • 如果有一天,突发奇想的PM想让你实现这种提示效果?用户点击按钮-----弹出一个提示信息,类似于上图GIF展示的效果,我们该怎么实现呢?
    当然方式有很多种,比如PopupWindow,或者动画,其实,还有一种我们用的最多的----Toast也可以实现这种方式,而且比其他方式更简单。

  • 前言

Toast,开发中最简单,最常见的提示方式,一般使用,都是简单的

Toast toast = Toast.makeText(this,"提示!!!!", Toast.LENGTH_SHORT);
toast.show();```
灰黑色背景,加上一句提示语句,是不是太过单调呢?
那就试试不一样的Toast

- ######改变Toast的位置
- 1.设置Gravity

Toast toast = Toast.makeText(this, "提示!!!!", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();```
对Toast对象重新设置Gravity,除了设置CENTER,还有很多位置可选,可以根据需求自己设定


Gravity的位置.png
  • 2.设置设置Margin:
  toast.setMargin(0.5f,0.2f);```
- 3.设置展示时长

toast.setDuration(Toast.);```
不过只要Toast.LENGTH_LONG和LENGTH_SHORT可选。

  • 4.阅读Toast源码,会发现Toast有个方法,
public void setView(View view)```
意味着什么,我们可以给Toast设置一个View,也就是说,可以自定义Toast的样式啊


![Paste_Image.png](http:https://img.haomeiwen.com/i2789715/0d9a717ca5632702.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
动手吧

先来个布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="200dp"
android:layout_height="150dp"
android:background="@drawable/shape_bg"
android:orientation="vertical">

<ImageView
    android:layout_width="200dp"
    android:layout_height="100dp"
    android:padding="5dp"
    android:src="@drawable/favorite" />

<TextView
    android:layout_width="200dp"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="花式Toast"
    android:textColor="@color/white" />

</LinearLayout> ```
效果

Paste_Image.png

Activity的布局很简单:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/bt_toast"
        android:layout_width="200dp"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="50dp"
        android:background="@color/colorPrimary"
        android:text="Toast" />
</RelativeLayout>```
一个水平居中的Button,初始化控件:

Button button = findViewById(R.id.bt_toast);
toast = new Toast(this);
View v = getLayoutInflater().inflate(R.layout.toast, null);
toast.setView(v);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);```

点击Button时,展示Toast:

btToast.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                toast.show();
            }
        });```
轻轻松松,实现了效果。

- ######后记 
根据Toast的setView()方法,可以自定义Toast的样式,如果有这种需求,还是很方便的,不过,谷歌大大期望用最简单的方式给用户最直接的提示,所以这个方式谷歌并不推荐,但并不妨碍我们自己去定制自己的Toast,给用户不一样的体验

相关文章

  • 关于Toast--体验不一样的花式Toast

    如果有一天,突发奇想的PM想让你实现这种提示效果?用户点击按钮-----弹出一个提示信息,类似于上图GIF展示的效...

  • Toast--自定义Toast的显示风格

    在安卓应用中Toast的使用频率是非常高的,关于Toast的基本使用这里就不再啰嗦,这里只说一下怎么去更改Toas...

  • 来一套不一样的Toast--自定义Toast

    Android默认ToastAndroid默认Toast只是一个简单的黑框框,有时觉得太单调了,不如自己实现一套较...

  • Android Bug记录(一)

    Toast不显示 设置中关闭某个App的【显示通知】开关,Toast不再弹出,极大的影响了用户体验。 Toast在...

  • 自定义Toast

    这里我采用了全局toast对象。系统的Toast方法当连续多个Toast出现时会有延迟现象,体验较差。

  • 你见过这样的Toast吗?——Android Toast自定义使

    之前写过一篇没时间解释了,快使用Snackbar!——Android Snackbar花式使用指南。Toast的自...

  • Android工作整理-自定义Toast

    原因:1、有些手机多次点击toast会弹出多个toast,会以队列的形式显示。体验不好。2、系统默认的toast的...

  • toast提示信息处理

    什么是toast提示信息? toast:Android中的Toast是一种简易的消息提示框。 和Dialog不一样...

  • Android解决Toast重复显示问题

    Toast是Android中用来显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点,而且Toast...

  • 静态Toast

    1.为什么使用静态toast 直接使用系统的toast,如果想要多弹几个,需要排队弹出,用户体验不好; 2.使用

网友评论

    本文标题:关于Toast--体验不一样的花式Toast

    本文链接:https://www.haomeiwen.com/subject/vqqavttx.html