Android-重新包裝Toast,自定義背景
Android-重新包裝Toast,自定義背景
2016-4-27
Android L
算是包裝了一個自己使用的小工具。
使用Toast的目的是彈一個提示框。先看一下Toast.makeText
方法。
Toast.makeText(getApplicationContext(), this, "彈出一個Toast", Toast.LENGTH_SHORT).show();
使用了Android自己的一個layout,然後把傳入的text放到layout的TextView中。
public static Toast makeText(Context context, CharSequence text, @Duration int duration) {
Toast result = new Toast(context);
LayoutInflater inflate = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);
TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);
tv.setText(text);
result.mNextView = v;
result.mDuration = duration;
return result;
}
我們想自定義個Toast背景,並且呼叫方法和原來的Toast類似。
觀察一下上面的Toast,使用的是Android裡面的View。在這一步把View改成我們自己的即可達到目的。
新建檔案ToastCustom.java
public class ToastCustom {
public static final int LENGTH_SHORT = Toast.LENGTH_SHORT;
public static final int LENGTH_LONG = Toast.LENGTH_LONG;
Toast toast;
Context mContext;
TextView toastTextField;
public ToastCustom(Context context, Activity activity) {
mContext = context;
toast = new Toast(mContext);
toast.setGravity(Gravity.BOTTOM, 0, 260);// 位置會比原來的Toast偏上一些
View toastRoot = activity.getLayoutInflater().inflate(R.layout.toast_view, null);
toastTextField = (TextView) toastRoot.findViewById(R.id.toast_text);
toast.setView(toastRoot);
}
public void setDuration(int d) {
toast.setDuration(d);
}
public void setText(String t) {
toastTextField.setText(t);
}
public static ToastCustom makeText(Context context, Activity activity, String text, int duration) {
ToastCustom toastCustom = new ToastCustom(context, activity);
toastCustom.setText(text);
toastCustom.setDuration(duration);
return toastCustom;
}
public void show() {
toast.show();
}
}
新建一個layout toast_view.xml
,裡面的style自己定義
<?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:orientation="vertical">
<TextView
android:id="@+id/toast_text"
style="@style/TextToast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:background="@drawable/shape_toast"
android:textColor="@color/white" />
</LinearLayout>
呼叫方式和Toast一樣:
ToastCustom.makeText(getApplicationContext(), this, "彈出自定義背景Toast",
ToastCustom.LENGTH_SHORT).show();
之後就可以很方便地使用這個自定義背景的Toast
相關文章
- 自定義Toast的背景顏色大小及字型大小AST
- Android Toast 自定義背景、圖片 隨心使用AndroidAST
- Android自定義邊框背景顏色的ToastAndroidAST
- 自定義ToastAST
- Android自定義ToastAndroidAST
- 自定義Toast樣式AST
- mui toast自定義樣式UIAST
- 自定義Toast樣式+改變Toast寬高AST
- Android 自定義Toast及BUGAndroidAST
- 一個可以自定義的ToastAST
- 微信小程式之『自定義toast』微信小程式AST
- Android 自定義Toast,修改Toast樣式和顯示時長AndroidAST
- 自定義Toast及視窗透明處理AST
- Android Toast 預設和自定義使用AndroidAST
- Android中自定義Toast文字大小AndroidAST
- uni-app 自定義loading 自定義toast 相容小程式&APPAPPAST
- 百度小程式自定義通用toast元件AST元件
- Android中自定義特定顏色的ToastAndroidAST
- Android 程式設計程式碼-自定義 ToastAndroid程式設計AST
- 【Android開發點滴】自定義Toast樣式AndroidAST
- Android 自定義Toast實現多次觸發只會顯示一次toastAndroidAST
- 自定義msi安裝包的執行過程
- IOS 自定義 UIDatePicker 背景圖片iOSUI
- 自定義chrome的輸入框背景顏色Chrome
- js利用閉包封裝自定義模組的幾種方法JS封裝
- 微信小程式-自定義下拉重新整理微信小程式
- win10怎麼自定義背景圖切換_win10自定義背景圖片隨機切換的步驟Win10隨機
- Toast改變背景以及度數設定AST
- 自定義部落格園部落格的背景圖片
- KubeKey v3.1 釋出:快速自定義離線安裝包
- win10如何刪除自定義的背景圖片 win10刪除背景自定義圖片歷史記錄的步驟Win10
- 自定義 Composer 包 dome 小測試
- 測試 iris 時自定義 context 包Context
- bili-emoji自定義表情包設定
- 自定義一個下拉重新整理控制元件控制元件
- 自定義View——仿騰訊TIM下拉重新整理ViewView
- Android自定義下拉重新整理控制元件Android控制元件
- 設定toast的字型顏色和背景顏色AST