Android開發UI之Toast的使用


Toast,A toast provides simple feedback about an operation in a small popup. 

對於操作提供一個簡單反饋信息。

官網鏈接:http://developer.android.com/reference/android/widget/Toast.html

常量有兩個:

LENGTH_LONG   顯示稍微長點的時間,大概在5秒左右
LENGTH_SHORT    顯示稍微短點的時候,大概在3秒左右

比較簡單的使用

代碼:

1 Toast.makeText(getApplicationContext(), "This is a Toast", Toast.LENGTH_SHORT).show();

還可以定制Toast顯示的位置

1 Toast showToast=Toast.makeText(MainActivity.this, "顯示Toast", Toast.LENGTH_SHORT);
2 showToast.setGravity(Gravity.CENTER, 0, 0);
3 showToast.show();

通過setGravity (int gravity, int xOffset, int yOffset)方法,

參數一:gravity,可以使用Gravity類的常量,比如:Gravity.CENTER,Gravity.BOTTOM,Gravity.LEFT,Gravity.RIGHT,Gravity.TOP等

參數二:toast位於屏幕X軸的位移,大於0表示往屏幕右邊移動,小於0表示往屏幕左邊移動。

參數三:與參數二一樣, 不過是在屏幕Y軸的位移,大於0表示往屏幕下方移動,小於0表示往屏幕上方移動。

同時還可以給Toast設置圖片等,

需要用的setView (View view)方法

參數:設置一個view,可以是layout,也可以是imageview等,只要是view或者子類都可以,看需求定義即可。

使用Toast時,注意,在UI線程中,可以直接使用Toast。在子線程中,直接使用Toast的話,會出現Force Close,需要使用Looper類。請參考這篇記錄

 

Toast的五種例子

1.默認效果

1 Toast.makeText(getApplicationContext(), "默認Toast樣式",Toast.LENGTH_SHORT).show();

2.自定義顯示位置效果

1 toast = Toast.makeText(getApplicationContext(), "自定義位置Toast", Toast.LENGTH_LONG);
2 toast.setGravity(Gravity.CENTER, 0, 0);
3 toast.show();

3.帶圖片效果

1 toast = Toast.makeText(getApplicationContext(),"帶圖片的Toast",Toast.LENGTH_LONG);
2 toast.setGravity(Gravity.CENTER, 0, 0);
3 LinearLayout toastView = (LinearLayout) toast.getView();
4 ImageView imageCodeProject = new ImageView(getApplicationContext());
5 imageCodeProject.setImageResource(R.drawable.icon);
6 toastView.addView(imageCodeProject, 0);
7 toast.show();

4.完全自定義效果

 1 LayoutInflater inflater = getLayoutInflater();
 2 View layout = inflater.inflate(R.layout.custom,(ViewGroup) findViewById(R.id.llToast));
 4 ImageView image = (ImageView) layout.findViewById(R.id.tvImageToast);
 5 image.setImageResource(R.drawable.icon);
 6 TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
 7 title.setText("Attention");
 8 TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
 9 text.setText("完全自定義Toast");
10 toast = new Toast(getApplicationContext());
11 toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
12 toast.setDuration(Toast.LENGTH_LONG);
13 toast.setView(layout);
14 toast.show();

5.來自其他線程的

1 new Thread(new Runnable() {
2 public void run() {
3 showToast();
4 }
5 }).start();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM