package common;import android.app.Activity;import android.content.Context;import android.os.Handler;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.widget.LinearLayout;import android.widget.TextView;import java.util.List;import java.util.Stack;import java.util.Vector;import video.bwgc.com.bwgclibrary.R;/** * 类   名:${TYPE_NAME} 
* 类描述:
* 创建人:zhangqi
* 创建时间:2017/6/6
* 修改人:zhangqi
* 修改时间:2017/6/6
* 修改备注:
* * @version 1.0.0
*/public class ToastUtil { public static final int LENGTH_SHORT = 0x00; public static final int LENGTH_LONG = 0x01; private final int ANIMATION_DURATION = 600; public Context mContext; public String msg; private int HIDE_DELAY = 2000; public static boolean isRunning=false; private Handler mHandler = new Handler(); public static Stack stack = new Stack(); // 表示吐司里显示的文字 public static ToastUtil makeText(Context context, String message, int HIDE_DELAY) { ToastUtil utils=new ToastUtil(); utils.mContext=context; utils.msg=message; if (HIDE_DELAY == LENGTH_LONG) { utils.HIDE_DELAY= 2500; } else { utils.HIDE_DELAY= 1500; } return utils; } public static void wakeUp(){ isRunning=true; if (!stack.empty()) { ToastUtil util=stack.pop(); util.doshow(); }else{ isRunning=false; } } public void doshow(){ final ViewGroup container = (ViewGroup) ((Activity) mContext) .findViewById(android.R.id.content); final View mView = ((Activity) mContext).getLayoutInflater().inflate( R.layout.toast_layout, null); container.addView(mView); final LinearLayout mContainer = (LinearLayout) mView.findViewById(R.id.mbContainer); mContainer.setVisibility(View.GONE); TextView mTextView = (TextView) mView.findViewById(R.id.mbMessage); mTextView.setText(msg); // 显示动画 AlphaAnimation mFadeInAnimation = new AlphaAnimation(0.0f, 1.0f); // 消失动画 final AlphaAnimation mFadeOutAnimation = new AlphaAnimation(1.0f, 0.0f); mFadeOutAnimation.setDuration(ANIMATION_DURATION); mFadeOutAnimation .setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { // 消失动画后更改状态为 未显示 } @Override public void onAnimationEnd(Animation animation) { // 隐藏布局,不使用remove方法为防止多次创建多个布局 mContainer.setVisibility(View.GONE); container.removeView(mView); wakeUp(); } @Override public void onAnimationRepeat(Animation animation) { } }); mContainer.setVisibility(View.VISIBLE); mFadeInAnimation.setDuration(ANIMATION_DURATION); mContainer.startAnimation(mFadeInAnimation); mHandler.postDelayed(new Runnable() { @Override public void run() { mContainer.startAnimation(mFadeOutAnimation); } }, HIDE_DELAY); } public void show() { stack.push(this); if(!isRunning){ wakeUp(); } }}


toast_layout.xml文件

<?xml version="1.0" encoding="utf-8"?>                


shape_toastutils_bg.xml文件

<?xml version="1.0" encoding="utf-8"?>        

使用方法:

ToastUtil.makeText(context,msg,ToastUtil.LENGTH_SHORT).show();


更多相关文章

  1. android隐藏以及显示软键盘
  2. Android读取SD卡下面所有的TXT文件名 listView显示出来
  3. Android(安卓)SQLiteOpenHelper的使用
  4. android 直播点赞 爱心动画
  5. android 年月日选择器(可选择年,年月,年月日)
  6. Android(安卓)技术博客(3):android 悬浮窗菜单,可用于显示在 launche
  7. Android(安卓)语音识别
  8. Android(安卓)显示/隐藏 应用图标
  9. android在Button上显示倒计时

随机推荐

  1. android手机地图开发流程基础
  2. 本人在安装ADT Bundle for windows的各种
  3. android开发必备的一些网址
  4. Android(安卓)从sd卡读取XML文件并解析
  5. Android-REC制作[从入门到精通]
  6. android扩展openfire注册
  7. Ane技术大全 - Devil程序员
  8. 『转』Android AndroidPn推送消息
  9. 书评:使用Android(安卓)SDK构建应用,第2版
  10. Android DataBinding使用2-Recycleview