您好,登錄后才能下訂單哦!
Toast用于向用戶顯示一些幫助或者提示,對(duì)于我們來(lái)說(shuō)已經(jīng)不陌生了,經(jīng)常用到。
下面我們一起再深入了解一下Toast,你會(huì)驚奇發(fā)現(xiàn)Toast原來(lái)還能這樣做!
一、設(shè)計(jì)界面
1、打開(kāi)“res/layout/activity_main.xml”文件。
從工具欄向activity拖出5個(gè)按鈕Button。
2、打開(kāi)activity_main.xml文件。
代碼如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dip" android:gravity="center" android:orientation="vertical" > <Button android:id="@+id/original" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="默認(rèn)樣式" /> <Button android:id="@+id/byphoto" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="帶圖片樣式" /> <Button android:id="@+id/customposition" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="自定義顯示位置樣式" /> <Button android:id="@+id/alldiy" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="完全自定義樣式" /> <Button android:id="@+id/bythread" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="來(lái)自其他線程樣式" /> </LinearLayout>
3、添加custom.xml文件
代碼如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#ffffffff" android:id="@+id/customtoast" android:orientation="vertical" > <TextView android:id="@+id/titletoast" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="1dip" android:gravity="center" android:background="#16ccdd" android:textColor="#ffffffff" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/customtoastcontent" android:layout_marginLeft="1dip" android:layout_marginRight="1dip" android:layout_marginBottom="1dip" android:padding="15dip" android:background="#ccffff" android:orientation="vertical" > <ImageView android:id="@+id/picture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> <TextView android:id="@+id/prompt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="10dip" android:paddingLeft="10dip" android:gravity="center" android:textColor="#ff000000" /> </LinearLayout> </LinearLayout>
二、程序文件
打開(kāi)“src/com.genwoxue.toast/MainActivity.java”文件。
然后輸入以下代碼:
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener{ Handler handler = new Handler(); //聲明按鈕 private Button btnOriginal = null; private Button btnByPhoto = null; private Button btnCustomPosition = null; private Button btnAllDiy = null; private Button btnThread = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲得按鈕 btnOriginal = (Button) findViewById(R.id.original); btnByPhoto = (Button) findViewById(R.id.byphoto); btnCustomPosition = (Button) findViewById(R.id.customposition); btnAllDiy = (Button) findViewById(R.id.alldiy); btnThread = (Button) findViewById(R.id.bythread); //設(shè)置OnClick監(jiān)聽(tīng)事件 btnOriginal.setOnClickListener(this); btnByPhoto.setOnClickListener(this); btnCustomPosition.setOnClickListener(this); btnAllDiy.setOnClickListener(this); btnThread.setOnClickListener(this); } /*線程*/ public void showToast(){ handler.post(new Runnable(){ @Override public void run() { Toast.makeText(getApplicationContext(), "我來(lái)自其他線程!", Toast.LENGTH_SHORT).show(); } }); } @Override public void onClick(View v) { Toast toast = null; switch(v.getId()){ case R.id.original://默認(rèn)Toast樣式處理 Toast.makeText(getApplicationContext(), "默認(rèn)Toast樣式", Toast.LENGTH_LONG).show(); break; case R.id.byphoto://帶圖片Toast樣式處理 toast = Toast.makeText(getApplicationContext(), "帶圖片的Toast", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); //實(shí)例化線性布局 LinearLayout toastView = (LinearLayout) toast.getView(); //加載圖像 ImageView p_w_picpathCodeProject = new ImageView(getApplicationContext()); p_w_picpathCodeProject.setImageResource(R.drawable.ic_launcher); toastView.addView(p_w_picpathCodeProject,0); toast.show(); break; case R.id.customposition://自定義位置Toast樣式處理 toast = Toast.makeText(getApplicationContext(), "自定義位置Toast", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); break; case R.id.alldiy://完全自定義位置Toast樣式處理 /* * setContentView()一旦調(diào)用,layout就會(huì)立刻顯示UI;而inflate只會(huì)把Layout形成一個(gè)以view類實(shí)現(xiàn)成的對(duì)象。 * 有需要時(shí)再用setContentView(view)顯示出來(lái)。一般在activity中通過(guò)setContentView()將界面顯 * 示出來(lái),但是如果在非activity中如何對(duì)控件布局設(shè)置操作了,這就需要LayoutInflater動(dòng)態(tài)加載。 */ LayoutInflater inflater = getLayoutInflater(); //inflate(int Resourece,ViewGroup root)作用:填充一個(gè)新的視圖層次結(jié)構(gòu)從指定的XML資源文件中加載。 View layout = inflater.inflate(R.layout.custom, (ViewGroup) findViewById(R.id.customtoast)); //加載圖像 ImageView p_w_picpath = (ImageView) layout.findViewById(R.id.picture); p_w_picpath.setImageResource(R.drawable.ic_launcher); //設(shè)置標(biāo)題 TextView title = (TextView) layout.findViewById(R.id.titletoast); title.setText("完全自定義Toast"); //顯示內(nèi)容 TextView text = (TextView) layout.findViewById(R.id.prompt); text.setText("顯示提示信息……"); toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.RIGHT|Gravity.TOP,12, 40); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); break; case R.id.bythread: //實(shí)例化線程 new Thread(new Runnable(){ @Override public void run() { showToast(); } }).start(); break; } } }
說(shuō)明:
Toast是Android中用來(lái)顯示顯示信息的一種機(jī)制,和Dialog不一樣的是,Toast是沒(méi)有焦點(diǎn)的,而且Toast顯示的時(shí)間有限,過(guò)一定的時(shí)間就會(huì)自動(dòng)消失。
三、運(yùn)行效果
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。