1 编写一个Toast工具类,自定义界面只需要将自定义的布局文件放入即可。
package com.example.mobliesoft.utils;
import android.content.Context;
import android.graphics.PixelFormat;
import android.view.View;
import android.view.WindowManager;
public class ToastUtils {
private WindowManager mWM;
public ToastUtils(Context context){
mWM = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
}
/**
* 展示自定义的toast
* @param context
* @param view
*/
public void showToast(View view)
{
//参数设置
WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
WindowManager.LayoutParams params = mParams;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
params.format = PixelFormat.TRANSLUCENT;
params.type = WindowManager.LayoutParams.TYPE_TOAST;
params.setTitle("Toast");
mWM.addView(view, params);
}
/**
* 关闭自定义的Toast
* @param view
*/
public void HideToast(View view)
{
if(view!=null&&view.getParent()!=null)
mWM.removeView(view);
}
}
启动一个自定义toast:
private ToastUtils mytoast = new ToastUtils(AttributionService.this);
mytoast.showToast(user_defined_ToastView);
关闭一个自定义的Toast:
if (mytoast != null) // 由于在正常情况下,mytoast还没有建立,所以必须先进性判断
mytoast.HideToast(user_defined_ToastView);