效果图:

创建Toast类

package com.example.messageboxtest;import android.app.Activity;import android.content.Context;import android.os.Handler;import android.view.Gravity;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;/** *  * @author chaowen * */public class MyMsgBox {private static final int ANIMATION_DURATION = 600;private int HIDE_DELAY = 5000;private View mContainer;private int gravity = Gravity.CENTER;private TextView mTextView;private Handler mHandler;private AlphaAnimation mFadeInAnimation;private AlphaAnimation mFadeOutAnimation;public MyMsgBox(Context context, int HIDE_DELAY, int gravity) {ViewGroup container = (ViewGroup) ((Activity) context).findViewById(android.R.id.content);View v = ((Activity) context).getLayoutInflater().inflate(R.layout.newmb__messagebar, container);this.HIDE_DELAY = HIDE_DELAY;this.gravity = gravity;init(v);}private void init(View v) {mContainer = v.findViewById(R.id.mbContainer);mContainer.setVisibility(View.GONE);mTextView = (TextView) v.findViewById(R.id.mbMessage);mFadeInAnimation = new AlphaAnimation(0.0f, 1.0f);mFadeOutAnimation = new AlphaAnimation(1.0f, 0.0f);mFadeOutAnimation.setDuration(ANIMATION_DURATION);mFadeOutAnimation.setAnimationListener(new Animation.AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {}@Overridepublic void onAnimationEnd(Animation animation) {mContainer.setVisibility(View.GONE);}@Overridepublic void onAnimationRepeat(Animation animation) {}});mHandler = new Handler();}public void show(String message) {mContainer.setVisibility(View.VISIBLE);((LinearLayout) mContainer).setGravity(gravity| Gravity.CENTER_VERTICAL);mTextView.setText(message);mFadeInAnimation.setDuration(ANIMATION_DURATION);mContainer.startAnimation(mFadeInAnimation);mHandler.postDelayed(mHideRunnable, HIDE_DELAY);}private final Runnable mHideRunnable = new Runnable() {@Overridepublic void run() {mContainer.startAnimation(mFadeOutAnimation);}};}

对应的布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/mbContainer"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:layout_margin="10dp"    android:gravity="bottom"    android:orientation="vertical" >    <LinearLayout        style="@style/bgTheme"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_margin="10dp"        android:gravity="bottom"        android:orientation="vertical" >        <TextView            android:id="@+id/mbMessage"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:text="Test"            android:textColor="@drawable/white" />    </LinearLayout></LinearLayout>

 

使用方法:

MyMsgBox m = new MyMsgBox(arg0.getContext(), 5000,                        Gravity.BOTTOM);        m.show("这是一个性化Toast");

 

更多相关文章

  1. Android(安卓)计时器的实现
  2. Android(安卓)Studio开发(二)使用RecyclerView实现瀑布流展示
  3. android中对服务的应用管理
  4. Android工程的gradle版本和gradle plugin插件对应关系
  5. Android应用程序未捕获异常并提示用户发送给开发者
  6. Android(安卓)Virtual Device仿真界面对应快捷
  7. 一个简单android的全选,单选demo
  8. Android(安卓)pm命令使用方法
  9. 关于android中的各种路径对应的方法

随机推荐

  1. Android(安卓)新手常见的10个误区(上)
  2. Android下uptime获取系统启动和运行时间
  3. Android流量统计
  4. android中context
  5. 创建SqliteDatabase
  6. USB Accessory
  7. 常用数组函数学习
  8. TP vue绑定事件与组件、通信、路由(四)
  9. WIN7实现安装node14版本
  10. 实例演示CURD