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視圖
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>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 {@Overrideprotected 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();} }注意
除非使用setView(View)來自定義Toast的布局顯示,否則永遠不要使用公共的構造方法來生成Toast對象。
總結