精华内容
下载资源
问答
  • 主要为大家详细介绍了Android Toast自定义显示时间,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 说明:  1:好记性,不如写博客 ... 3:自定义显示的时长,测试过最长显示时间为3s  4:自定义显示的位置 代码: private void toast(Context ctx, String msg, int time) { if (msg.equals("") || msg

    说明:

             1:好记性,不如写博客

             2:直接可以调用此方法使用,懒人的最佳方法

             3:自定义显示的时长,测试过最长显示时间为3s

             4:自定义显示的位置


    代码:


    private void toast(Context ctx, String msg, int time) {
    	if (msg.equals("") || msg == null) {
    		return;
    	}
    
    	try {
    		Handler mHandler = null;
    		
    		//Toast 自定义位置
    		final Toast toasts = Toast.makeText(ctx, msg, Toast.LENGTH_SHORT);
    		toasts.setGravity(Gravity.CENTER, 0, 0);
    		toasts.show();
    		
    		if (mHandler == null) {
    			mHandler = new Handler();
    			mHandler.postDelayed(new Runnable() {
    				@Override
    				public void run() {
    					toasts.cancel();
    				}
    			}, time);
    		}
    	} catch (Exception e) {
    
    	}
    }
    	
    	//调用方法   100 可以修改3000以内的值
    	toast(this, "调用方法", 100);
    调用:
    toast(this, "此处为调用方法", 300);





    展开全文
  • android 自带的toast显示...这里有一个简单的方法可以实现自定义显示时间Toastpublic static void MyToast(Context context,String message,long time){ final Toast toast=Toast.makeText(context, message, Toa

    android 自带的toast显示时间是固定的,在方法里面不能设置显示时间长短
    这里有一个简单的方法可以实现自定义显示时间的Toast

    public static void MyToast(Context context,String message,long time){
            final Toast toast=Toast.makeText(context, message, Toast.LENGTH_LONG);
            final Timer timer=new Timer();
            timer.schedule(new TimerTask() {
    
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    toast.show();
                }
            }, 0, 3000);
            new Timer().schedule(new TimerTask() {
    
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    toast.cancel();
                    timer.cancel();
                }
            }, time);
        }
    展开全文
  • 使用Timer自定义Toast显示时间。 自带的: private static final int LONG_DELAY = 3500; // 3.5 seconds private static final int SHORT_DELAY = 2000; // 2 seconds 代码: 方法: public vo

    说明:

    使用Timer自定义Toast显示时间。

    自带的:

    private static final int LONG_DELAY = 3500; // 3.5 seconds           

    private static final int SHORT_DELAY = 2000; // 2 seconds

    代码:

    方法:

     

    public void showMyToast(final Toast toast, final int cnt) {
            final Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    toast.show();
                }
            }, 0, 3000);
            new Timer().schedule(new TimerTask() {
                @Override
                public void run() {
                    toast.cancel();
                    timer.cancel();
                }
            }, cnt );
        }
     

     

    调用:

     

    Toast toast=Toast.makeText(RegistActivity.this, "这是可以随意设置时间的Toast", Toast.LENGTH_LONG);
    showMyToast(toast, 10*1000);
     

     

    注意:

    1、创建Toast对象的时候,要设置Toast.LENGTH_LONG,最后不要调用show()方法

    2、showMyToast()方法,传入两个参数,第一个参数为我们创建的Toast对象,第二个参数为我们想要设置显示的毫秒数

     


     

    ฅ՞•ﻌ•՞ฅ ~ 厚着脸皮要个赞赏哈 ~ ฅ՞•ﻌ•՞ฅ

     

    展开全文
  • Adroid中Toast自定义显示时间

    万次阅读 2016-07-14 14:28:34
    常规使用方法这里不做说明,继前一片博客《Android中Toast全屏显示》,其中抛砖引玉的给出一个简单的实现Toast全屏显示的方法后,发现无法控制Toast显示时长。虽然Toast中有setDuration(int duration)接口,但是...

           Toast是Android中使用频率较高的弹窗提示手段,使用起来简单、方便。常规使用方法这里不做说明,继前一片博客《Android中Toast全屏显示》,其中抛砖引玉的给出一个简单的实现Toast全屏显示的方法后,发现无法控制Toast的显示时长。虽然Toast中有setDuration(int duration)接口,但是跟踪代码发现,设置的时间没起作用,只有系统默认的两个时间LENGTH_DURATION = 3500毫秒,SHORT_DURATION = 2000毫秒。也就是说,无论我们设置多长时间,最终影响Toast弹窗时间的只有Toast.LENGTH_LONG和Toast.LENGTH_SHORT两个参数。

           目前解决该问题的方法主要有两个:

    1、利用反射原理,通过控制Toast的show()和hide()接口来控制显示时间,可参见博客《利用反射机制控制Toast的显示时间》。不过该方法只对Android4.0以下的系统有效,通过模拟器实测,也是如此。当前系统基本都在Android4.0以上,该方法过于老旧。

    2、利用WindowManager的addView()方法动态刷屏,可看见博客《Android自定义Toast,可设定显示时间》。该方法被很多软件用来显示浮动窗口和图片的动态悬浮效果,如360手机软件和一些手游软件。在Android4.0上是一种不错的选择。当然,对于遇到系统默认把悬浮窗口功能关闭的手机,这招可能就不灵了。

           通过分析Toast的显示原理和弹窗控制逻辑,本人借助Handler和Runnable机制,也成功实现了对Toast显示任意自定义时长。代码是在Toast全屏显示的基础上修改而来,贴出如下:

    package com.dls.nltest;
    
    import android.content.Context;
    import android.os.Handler;
    import android.util.DisplayMetrics;
    import android.util.Log;
    import android.view.Gravity;
    import android.view.WindowManager;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
    import android.widget.LinearLayout.LayoutParams;
    
    public class GenericToast{
    	private static final String TAG = "GenericToast";
    	
    	private static final int TOAST_TEXTSIZE = 20;
    
    	/** {@link Toast#LENGTH_SHORT} default time is 3500ms */
    	private static final int LENGTH_SHORT_TIME = 2000;
    
    	private static Context mContext = null;
    
    	private static Toast mToast = null;
    	private static TextView mTextView = null;
    	private static int mDuration = 0;
    	private static CharSequence mText = null;
    
    	private Handler mHandler = new Handler();
    
    	private GenericToast(Context context) {
    		mContext = context;
    	}
    
    	public static GenericToast makeText(Context context, CharSequence text, int duration){
    		GenericToast instance = new GenericToast(context);
    		mContext = context;
    		mDuration = duration;
    		mText = text;
    		return instance;
    	}
    
    	private static void getToast(Context context, CharSequence text){
    		mToast = Toast.makeText(context, null, Toast.LENGTH_LONG);
    		mToast.setGravity(Gravity.CENTER, 0, 0);
    		LinearLayout toastView = (LinearLayout)mToast.getView();
    
    		// Get the screen size with unit pixels.
    		WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
    		DisplayMetrics outMetrics = new DisplayMetrics();
    		wm.getDefaultDisplay().getMetrics(outMetrics);
    
    		mTextView = new TextView(context);
    		LayoutParams vlp = new LayoutParams(outMetrics.widthPixels,
    				                            outMetrics.heightPixels);		
    		vlp.setMargins(0, 0, 0, 0);
    		mTextView.setLayoutParams(vlp);
    		mTextView.setTextSize(TOAST_TEXTSIZE);
    		mTextView.setText(text);
    		mTextView.setGravity(Gravity.CENTER);
    		toastView.addView(mTextView);
    	}
    
    	/**
    	 * Before call this method, you should call {@link makeText}.
    	 *
    	 * @return Toast display duration.
    	 */
    	public int getDuration(){
    		return mDuration;
    	}
    	
    	public void show(){
    		Log.d(TAG, "Show custom toast");
    		mHandler.post(showRunnable);
    	}
    
    	public void hide(){
    		Log.d(TAG, "Hide custom toast");
    		mDuration = 0;
    		if(mToast != null){
    			mToast.cancel();
    		}
    	}
    
    	private Runnable showRunnable = new Runnable(){
    		@Override
    		public void run() {
    			if(mToast != null){
    				mTextView.setText(mText);
    			}else{
    				getToast(mContext, mText);
    			}
    			if(mDuration != 0){
    				mToast.show();
    			}else{
    				Log.d(TAG, "Hide custom toast in runnable");
    				hide();
    				return;
    			}
    
    			if(mDuration > LENGTH_SHORT_TIME){
    				mHandler.postDelayed(showRunnable, LENGTH_SHORT_TIME);
    				mDuration -= LENGTH_SHORT_TIME;
    			}else{
    				mHandler.postDelayed(showRunnable, mDuration);
    				mDuration = 0;
    			}
    		}
    	};
    }
    Toast弹窗10s,测试代码如下:

    GenericToast mGToast = GenericToast.makeText(this, "I am generic toast", 10 * 1000);
    mGToast.show();
    如果需要终止弹窗,只要在需要的地方调用hide()即可。
    展开全文
  • 简易Toast工具方法 private void displayToastTip(final String tip) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(SfzShiBieActivity.this, tip...
  • ublic class CustomToast { public static final int LENGTH_MAX = -1; private boolean mCanceled = true; private Handler mHandler; private Context mContext;... private Toast mToast;
  • Android 自定义 Toast 显示时间 ... * Toast自定义显示时间 * 使用方法 * 1.先初始化类 MyToast myToast = new MyToast(this); * 2.显示消息 myToast.setText(要显示的内容); //设置要显示的内容 *
  • Toast 自定义显示时长

    千次阅读 2018-04-08 14:37:33
    推荐这个库,很强大的 Toast 当然你还可以这么写,利用 Timer ...设置Toast显示时间 public void showMyToast(final Toast toast, final int cnt) { final Timer timer =new Timer(); timer.schedule(new T...
  • Toast自定义视图,设置显示时间的方法,相关博文:http://www.cnblogs.com/tianzhijiexian/p/3855557.html
  • 主要为大家详细介绍了android自定义Toast设定显示时间,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Toast使用之自定义显示时间 最近在学习安卓开发,遇到了一个问题,当使用监听类显示信息时,Toast的时间太长了,其中的 Toast.LENGTH_SHORT 时间长度为2秒 Toast.LENGTH_LONG 时间长度为3.5秒 先展示效果: 想要...
  • android 自定义toast

    2015-07-29 17:42:24
    android 自定义toast,toast自定义显示时间,toast自定义显示样式
  • 安卓Toast自定义及防止重复显示

    千次阅读 2014-08-18 09:21:19
    对用户的一种提示,他没有焦点,并在一定时间内会消失,但用户连续误操作(如登录时,密码错误)多次时,怎会有多个Toast被创建,系统会把这些toast放进队列中,等待上个Toast 显示完毕,接着显示下一个,那么用户则会...
  • Android Toast 自定义

    2018-01-19 10:06:42
    Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示时间有限,过一定的时间就会自动消失。下面用一个实例来看看如何使用Toast。1.默认效果:代码:Toast.makeText...
  • 对用户的一种提示,它没有焦点,并在一定时间内会消失,但用户连续误操作(如登录时,密码错误)多次时,则会有多个Toast被创建,系统会把这些toast放进队列中,等待上个Toast 显示完毕,接着显示下一个,那么用户则会...
  • Toast用于向用户显示一些帮助或提示,上面展示了Toast的4种使用效果,有需求的话也可以完全自定义,是一项很实用也很强大的功能。   这是使用Toast需要注意的代码: LENGTH_LONG---长时间显示视图或文本提示 ...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 367
精华内容 146
关键字:

toast自定义显示时间