Android 自定义Toast,不使用系统Toast
2013-06-26 23:20
423 查看
效果图:
创建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() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { mContainer.setVisibility(View.GONE); } @Override public 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() { @Override public 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");
相关文章推荐
- android中Toast显示时间自定义使用
- android 自定义View SpinnerLoader使用解析,让你摆脱系统难看的进度条
- Android 自定义Toast、Dialog及Snackbar的使用技巧场景实例和小技巧
- Android EditText 使用自定义键盘,隐藏系统键盘,保留光标
- Android自定义progressDialog使用系统ProgressBar与图片实现(二)使用图片
- Android自定义Toast,指定Toast信息显示的位置并使用Toast显示其他View
- Android相机使用(系统相机、自定义相机、大图片处理)
- Android深入浅出系列之实例应用—弹出消息Toast对象的使用自定义方式(二)
- 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)
- Android自定义Toast取代系统的Toast
- Android自定义Toast的使用
- Android深入浅出系列之实例应用—弹出消息Toast对象的使用自定义方式(二)
- android调用系统的自定义裁剪后得到的图片不清晰,使用MediaStore.EXTRA_OUTPUT获取缓存下的清晰图片
- Android Toolbar使用系统原生返回键,并改变其颜色,自定义图片替换系统原生返回键
- 自定义Toast,跟系统的一样好用,一样使用!!!
- android源码分析 android toast使用详解 toast自定义
- Android Toast 自定义背景、图片 随心使用
- Android Toast自定义使用
- Android 开发中使用的颜色可以分为两种,自定义颜色和系统颜色
- Android自定义View 使用PathMeasure简单模仿系统ProgressBar(四)