android成神之路Android developerAndroid入门学习

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

2017-01-04  本文已影响426人  T9的第三个三角
花式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
  toast.setMargin(0.5f,0.2f);```
- 3.设置展示时长

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

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,给用户不一样的体验
上一篇下一篇

猜你喜欢

热点阅读