資源簡介
Android自定義Toast樣式和時間,在屏幕中間顯示,
是使用方式:
ToastUtil.getInstance().show(str);

代碼片段和文件信息
package?com.petecat.jfree.utils;
import?android.content.Context;
import?android.os.CountDownTimer;
import?android.os.Handler;
import?android.view.LayoutInflater;
import?android.view.View;
import?android.widget.TextView;
import?android.util.Log;
import?android.view.Gravity;
import?android.widget.Toast;
import?com.petecat.jfree.R;
import?com.petecat.jfree.context.JfreeApplication;
public?class?ToastUtil?{
????private?Toast?mToast;
????private?TextView?mTextView;
????private?TimeCount?timeCount;
????private?String?message;
????private?Handler?mHandler?=?new?Handler();
????private?boolean?canceled?=?true;
????public?static?ToastUtil?getInstance()?{
????????return?ToastUtil.ToastUtils.sInstance;
????}
????//?靜態內部類
????private?static?class?ToastUtils?{
????????private?static?final?ToastUtil?sInstance?=?new?ToastUtil();
????}
????public?ToastUtil()?{
????}
????public?void?init(int?type)?{
????????LayoutInflater?inflater?=?(LayoutInflater)?JfreeApplication.getAppContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
????????//自定義布局
????????View?view?=?null;
????????if?(type?==?0)?{
????????????view?=?inflater.inflate(R.layout.toast_center?null);
????????}?else?{
????????????view?=?inflater.inflate(R.layout.toast_center1?null);
????????}
????????//自定義toast文本
????????mTextView?=?(TextView)?view.findViewById(R.id.toast_msg);
????????if?(mToast?==?null)?{
????????????mToast?=?new?Toast(JfreeApplication.getAppContext());
????????}
????????mToast.setGravity(Gravity.CENTER?0?0);
????????mToast.setDuration(Toast.LENGTH_LONG);
????????mToast.setView(view);
????}
????/**
?????*?自定義居中顯示toast
?????*/
????public?void?show(String?text)?{
????????hide();
????????if?(mToast?==?null)?{
????????????init(0);
????????}
????????message?=?text;
????????mTextView.setText(text);
????????mToast.show();
????}
????/**
?????*?自定義時長、居中顯示toast
?????*
?????*?@param?duration
?????*/
????public?void?show(String?text?int?duration)?{
????????hide();
????????if?(mToast?==?null)?{
????????????init(1);
????????}
????????message?=?text;
????????if?(timeCount?==?null)?{
????????????timeCount?=?new?TimeCount(duration?1000);
????????}
????????if?(canceled)?{
????????????timeCount.start();
????????????canceled?=?false;
????????????showUntilCancel();
????????}
????}
????/**
?????*?隱藏toast
?????*/
????public?void?hide()?{
????????if?(mToast?!=?null)?{
????????????mToast.cancel();
????????????mToast?=?null;
????????????mTextView?=?null;
????????}
????????canceled?=?true;
????????if?(timeCount?!=?null)?{
????????????timeCount.cancel();
????????}
????????if?(mHandler?!=?null)?{
????????????mHandler.removeCallbacksAndMessages(null);
????????}
????}
????private?void?showUntilCancel()?{
????????if?(canceled)?{?//如果已經取消顯示,就直接return
????????????return;
????????}
????????mToast.show();
????????mHandler.postDelayed(new?Runnable()?{
????????????@Override
????????????public?void?run()?{
????????????????showUntilCancel();
????????????}
????????}?2000);
????}
????/**
?????*?自定義計時器
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????3598??2018-12-23?23:35??ToastUtil.java
?????文件????????1040??2018-12-18?18:57??toast_center.xm
評論
共有 條評論