效果图:

Android 自定义Toast,不使用系统Toast

创建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 pm命令使用方法
  2. android投屏和媒体共享相关 && audio focus机制相关 && AudioTra
  3. Android Studio SVN 使用方法
  4. Ashmem(Android共享内存)使用方法和原理
  5. Android GridView的使用方法
  6. Android之日期时间选择器使用方法
  7. Android轮播图Banner使用方法
  8. Android ButterKnife框架的使用方法
  9. Android 自定义属性时TypedArray的使用方法

随机推荐

  1. Android(安卓)React Native在Android(安
  2. Android本地环境搭建步骤
  3. Android开发环境搭建
  4. Android中ListView注意事项
  5. Android(安卓)UI---自定义形状shape
  6. Android(安卓)EditText/TextView使用Span
  7. Android中播放GIF图片动画
  8. android基础入门布局讲解(2)
  9. 2011.06.07——— android 1.6 launcher
  10. 博客园Android客户端V3.0