Toast

原文内容:https://developer.android.com/guide/topics/ui/notifiers/toasts.html

  • 基本的Toast
  • Toast定位
  • 自定义Toast视图

Toast主要用于反馈操作后的信息,信息主要停留于当前可视界面,过段时间后自动消失。
若要显示状态信息,考虑使用Notification替代。

基本的Toast

Context context = getApplicationContext();
CharSequence text = "Hello toast";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context,text,duration);
toast.show();

或者合并

Toast.makeText(context,text,duration).show();


Toast定位

setGravity(int,int,int)
第一个参数为Gravity,第二个为x-position offset,第三个为y-position offset。
Gravity指的是方向,x-position offset指的是向左方向上的位移,y-position offset指的是向下方向的位移

Toast toast = Toast.makeText(getApplicationContext(),"Hello toast",Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.LEFT,0,0);


自定义Toast视图

activity_main.xml

<?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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin">

</RelativeLayout>

toast.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout_root" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="8dp">

    <ImageView  android:id="@+id/image_view" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:src="@drawable/bmw" />

    <TextView  android:id="@+id/text_view" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:textSize="30sp"/>

</LinearLayout>

Toast_第1张图片

MainActivity.java

package com.app.toasttext;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LayoutInflater layoutInflater = getLayoutInflater();
        View view = layoutInflater.inflate(R.layout.toast, (ViewGroup) findViewById(R.id.toast_layout_root));

        TextView text = (TextView) view.findViewById(R.id.text_view);
        text.setText("BMW");

        Toast toast = new Toast(this);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.setView(view);
        toast.show();
    }
}

Toast_第2张图片

注意
除非使用setView(View)来自定义Toast的布局显示,否则永远不要使用公共的构造方法来生成Toast对象。

你可能感兴趣的:(Toast)